25.9.2 repo无审核模式
Gerrit代码审核服务器部署比较麻烦,更不要说因为Gerrit用户界面的学习和用户使用习惯的更改而带来的困难了。在一个固定的团队内部使用repo可能真的没有必要使用Gerrit,因为团队成员都应该熟悉Git的操作,团队成员的编程能力都可信,单元测试质量由提交者保证,集成测试由单独的测试团队进行,即团队拥有一套完整、成型的研发工作流,引入Gerrit并非必要。
脱离了Gerrit服务器,直接跟Git服务器打交道,repo可以工作吗?是的,可以利用repo forall迭代器实现多项目代码的PUSH,其中有如下关键点需要重点关注。
repo start命令创建本地分支时,需要使用和上游同样的分支名。
如果使用不同的分支名,上传时需要提供复杂的引用描述。下面的示例先通过repo
manifest命令确认上游清单库默认的分支名为master,再使用该分支名(master)
作为本地分支名执行repo start。示例如下:
$repo manifest-o-|grep default
<default remote="bj" revision="master"/>
$repo start master—all
推送不能使用repo upload,而需要使用git push命令。
可以利用repo forall迭代器实现批命令方式执行。例如:
$repo forall-c git push
如果清单库中的上游git库地址用的是只读地址,需要为本地版本库一一更改上游版本库地址。
可以使用forall迭代器,批量为版本库设置git push时的版本库地址。下面的命令使用的环境变量$REPO_PROJECT是实现批量设置的关键。
$repo forall-c\
'git remote set-url—push bj android@bj.ossxp.com:android/${REPO_PROJECT}.git'