关于mainfest.xml中的参数格式和说明,能够本身查阅,此处不详细写,咱们知道project中的reversion能够指定分支,tag,commitid等,那么如何书写呢?html
首先克隆mainfest仓库,并切换到要工做分支,好比个人分支是developgit
git clone ssh://gerrit@192.168.8.250:29418/phoenix/manifestssh
cd mainfest.xml spa
而后按照以下分类参考修改default.xmlxml
(1)分支:reversion能够直接写分支的名字,以下:htm
<project path="SDK/upnp" revision="develop" name="test/upnp"/>blog
<project path="SDK/base" revision="master" name="test/base"/>同步
注意:it
修改完后提交改动到gerrit: git add default.xml; git commit -m "modify default.xml";git push origin HEAD:refs/for/develop io
repo命令获取分支代码:
能够使用-b 指定分支,即 repo init -u gerrit:phoenix/manifest -b develop
而后执行repo sync -j4 检出或者同步代码
(2) tag:不能直接就写一个tag名字,要加前缀refs/tags/,以下:
<project path="SDK" revision="refs/tags/tag_r60008_18214" name="test/SDK"/>
<project path="SDK/base" revision="refs/tags/tag_r60008_18214" name="test/base"/>
注意:
revision是tag的时候,必定要加前缀:refs/tags/
修改完后提交改动到gerrit: git add default.xml; git commit -m "modify default.xml";git push origin HEAD:refs/for/develop
并标记tag,好比tag_r60008_18214,推tag 到gerrit上。
repo命令获取分支代码:
repo init -u gerrit:phoenix/manifest -b refs/tags/tag_r60008_18214
而后执行repo sync -j4 检出或者同步代码
如上中的“repo init -u gerrit:”的“gerrit”的设置能够参考https://www.cnblogs.com/zndxall/p/10007755.html中的配置
repo start命令建立的分支是基于mainfest.xml 中的revision来在本地建立新分支。
(3)repo切换分支
操做完repo sync -j4后,执行repo branches, 会看到显示 no branch ,这时若是想让代码切换到你想要的分支,须要执行repo forall 命令
(1)好比要把全部仓库都切换到develop分支,能够执行:repo forall -c git checkout develop
(2)好比只须要切换某个分支到develop分支,须要执行:repo forall [project] -c git checkout develop
这里的project 须要采用repo forall -c pwd 获取,而后用显示的工程路径替换[project],
好比我执行了repo forall -c pwd 显示以下:
我想只想切换AndroidReceiver到develop分支下,那么我只要执行:
repo forall /root/src/workspace/my_repo/phoenix/AndroidReceiver -c git checkout develop 便可。