@Rays
2018-02-19T20:13:47.000000Z
字数 982
阅读 1503
语言开发
Google
摘要: 为便于开发人员对Go的开发做出贡献,Google开始将Go的GitHub PR(Pull Request)镜像到Go的上游Git服务器Gerrit。
作者: Sergio De Simone
正文:
为便于开发人员对Go的开发做出贡献,Google开始将Go的GitHub PR(Pull Request)镜像到Go的上游Git服务器Gerrit。
Gerrit是Go开发中主要使用的代码管理工具。为便于开发人员获取Go代码,现在所有归并到Gerrit的更改,同时也镜像到GitHub上的GoLang代码仓储中。据Google的Go工程师Andrew Bonventre介绍,Go团队近期也开始对GitHub PR做镜像,目前在于使Go开发贡献工作流更顺畅。
该工作是通过GerritBot实现的。GerritBot是一种机器人,它可以将任一GitHub PR导入到Gerrit,并以评论(comment)形式将Gerrit的审查链接发布到GitHub PR。所有在Gerrit中添加的评论都将同步到PR中,PR原始贡献者可以对这些评论做处理,并在不离开GitHub环境的情况下将更多的提交推送到同一PR分支。
Gerrit是一种基于Web的代码审查工具,构建在Git之上。Gerrit通过提供一种轻量级框架,简化了代码的审查。在框架中可并排展示所有的更改,并支持内联评论。这在某种程度上类似于GitHub PR所提供的功能,虽然两者在哲学上存在着根本差异。事实上,Gerrit在每次提交时都执行审查,而GitHub PR则是基于两个分支间的差异执行审查。这对于在GitHub或Gerrit中哪种工作流更自然具有重大影响。具体来说,Gerrit注重于单次提交审查,应该将更改分解为一组较小的自包含提交,而通常GitHub PR包含多次提交。
此外,Gerrit实际上提供了一种提交模型。在模型中,提交在实际归并到上游前,会做连续的修订。该模型的目标是通过修改先前的提交,仔细修订变更的历史记录,或将多次提交置于一次提交中。GitHub PR一般不会这样使用,尤其是在使用GitHub Web UI时。在使用命令行处理PR时,我们可以手动获得类似的结果。