• Lv0
    粉丝17

积分300 / 贡献0

提问5答案被采纳4文章45

[开发者活动] 代码分支的创建和拉取 原创

润开鸿_闻飞 显示全部楼层 发表于 2024-5-8 22:29:29

一、manifest介绍

OpenHarmony全套代码是由每一个仓组成,每一个仓可以创建多个分支,通过将仓和分支组成起来就是全套的代码

二、编写一个自己的xml文件

2.1 创建一个组织

登录gitee点击左边的+就可以创建一个组织

当前使用HoperunHarmony或者arch_adaptation组织

HoperunHarmony是项目内部创建的组织,可以自行上传代码,主要是熟悉代码提交的熟悉

arch_adaptation组织是用于正式联调君正x2000,等调测成功后直接合入到Openharmony上的,大家提交的时候最好都check一下

Note:我们的组织为非付费组织不能上传大的二进制文件

2.2 创建xml文件

2.2.1 manifest仓创建

从OpenHarmony开源组织中将manifest仓fork到自己创建的组织中

image.png

image.png

2.2.2 在master分支创建master_demo.xml

a> 将manifest仓下载到本地

git clone git@gitee.com:halley5/manifest.git

b> 创建一个master_demo.xml

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
    <remote fetch="https://gitee.com/openharmony-sig/" name="sig" review="https://gitee.com/openharmony-sig/"/>
    <include name="default.xml" />
</manifest>

c> 代码上库

git add .
git commit . -m"add master_demo.xml"
git push -u origin master

d> 代码拉取

repo init -u https://gitee.com/halley5/manifest.git -b master -m master_demo.xml --no-repo-verify
repo sync -c -j16
repo forall -c 'git lfs pull'
repo start master --all

2.2.3 在OpenHarmony-3.0-LTS分支上创建创建v3lts_demo.xml

a> 创建一个跟踪远程origin/OpenHarmony-3.0-LTS分支的本地分支OpenHarmony-3.0-LTS并切换到该分支

git checkout -b OpenHarmony-3.0-LTS origin/OpenHarmony-3.0-LTS

b> 创建一个v3lts_demo.xml

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
    <remote fetch="https://gitee.com/openharmony-sig/" name="sig" review="https://gitee.com/openharmony-sig/"/>
    <include name="default.xml" />
</manifest>

c> 代码上库

git add .
git commit . -m"add v3lts_demo.xml"
git push -u origin OpenHarmony-3.0-LTS

d> 代码拉取

repo init -u https://gitee.com/halley5/manifest.git -b OpenHarmony-3.0-LTS -m v3lts_demo.xml --no-repo-verify
repo sync -c -j16
repo forall -c 'git lfs pull'
repo start master --all

三、xml语法规则介绍

3.1 remote 作用

创建远程拉取路径

<remote fetch="../openharmony" name="origin" review="https://openharmony.gitee.com/openharmony/"/>
<remote fetch="https://gitee.com/halley5/" name="halley5" review="https://gitee.com/halley5"/>

3.1.1 fetch

定义一个远程拉取的路径,该路径可以是网络路径,也可以是当前仓的相对路径,最好定义成网络路径

3.1.2 name

给该远程路径定义一个别名,为了后面project使用

3.1.3 review

推测表示的是代码review的地址

3.2 default 作用

<default remote="origin" revision="OpenHarmony-3.0-LTS" sync-j="4" />

表示后面project中如果有相关属性省略则直接使用default中的属性

3.3 include 作用

表示将另一个xml文件包含进来,不解释

<include name="default.xml" />

3.4 project 作用

表示添加一个project仓,下载代码时由name、revision、remote三个属性决定,remote/name是该仓的代码路径,revision是下载该路径下的哪个分支代码,path表示下载后的仓代码放在本地哪个目录下

<project name="vendor_halley5" path="vendor/ingenic" revision="master" remote="halley5"/>

3.4.1 name

表示仓名

3.4.2 path

代码下载后放在什么位置

3.4.3 revision

下载gitee仓下的哪个分支代码或者某个commit的代码

3.4.4 remote

远程拉取的路径

3.5 remove-project 作用

删除一个仓,一般和project配合使用表示替换掉前面定义该仓的下载路径和分支

<project name="kernel_liteos_a" path="kernel/liteos_a"  />
<remove-project name="kernel_liteos_a"/>
<project name="kernel_liteos_a" path="kernel/liteos_a" revision="halley5" remote="halley5"/>

3.6 linkfile 作用

作用不知道

<linkfile dest="build.py" src="build.py"/>

3.6 注释

包含在该符号内<!-- -->的内容都是注释内容,可跨行注释

<!-- <project name="drivers_adapter_khdf_linux" path="drivers/adapter/khdf/linux"/> -->

3.7 repo命令介绍

3.7.1 repo init

初始化下载的工程

-u表示我们下载的xml所在仓的地址url

-b表示要下载的xml在哪个分支branch下面,不加默认使用的是master

-m表示使用该仓下哪一个xml文件

repo init -u https://gitee.com/halley5/manifest.git -b OpenHarmony-3.0-LTS -m v3lts_demo.xml --no-repo-verify

3.7.2 repo sync

下载代码

全量代码下载方法:

repo sync -c -j16

使单独仓代码下载方法,后面加仓的路径或者仓名都行

repo sync -c kernel/liteos_a
repo sync -c kernel_liteos_a

3.7.3 repo forall

下载二进制库代码没注意我们的组织为非付费组织只能下载二进制大文件,不能上传

repo forall -c 'git lfs pull'

3.7.4 repo start

初始化全部仓的本地分支

repo start master --all

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论2

润开鸿_梁开祝

沙发 发表于 2024-5-9 16:19:21
3.6 linkfile 作用
仓库的代码(分支)checkout 到本地时,会根据 linkfile 的描述创建软链接,以如下描述为例:
  1. <linkfile dest="build.sh" src="build_scripts/build.sh"/>
复制代码

checkout build 仓库的代码后,会在代码根目录创建一个名为“build.sh”的软链接文件,链接到对应仓库(build仓库)的 "build_scripts/build.sh" 文件上。

润开鸿_闻飞

发表于 2024-5-9 17:12  IP属地: - 中国江苏省扬州市 中国电信IDC

回复 润开鸿_梁开祝: 文章写的比较早了,那时候刚了解xml语法

【1 条回复】

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部