關於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 便可。