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'