您的位置:首页 > 其它

GIT & REPO & GERRIT (四)

2013-11-21 17:18 260 查看
Gerrit

对于大多数使用 gerrit 的程序猿来说,它就是一个 review 的平台。但在整个代码管理的系统中,它还担任了一个管理中心仓库的角色。因为 git 本身的话是一个分布式的代码管理系统,而在实际项目的运作中,通常还是需要一个中心仓库的,这样才便于协作开发。

既然对于大多数人来说,这工具就是一个 review 平台,那就先说 review 吧。首先,gerrit 本身是个网页版的工具,具体实现我也没详细研究过,代码是开源的(Apache License 2.0),有兴趣可以自己看:http://code.google.com/p/gerrit/

Review 流程

在 gerrit 中,review的流程是这样的:

程序猿上传代码

reviewer review:当一个 change +2 以后就可以 merge。通常只有资深程序猿才可以 +2,但是在 +2 以前,可以先找普通的 reviewer 看看 +1,这样可以一定程度上减轻主要 reviewer 的负担。

verify:可以是人工完成,也可以配置自动化工具。因为 review 可以看出大部分问题,但不能确保每一个细节,这一步需要做到什么程度就看具体情况了。比如可以配置自动化编译、自动化测试等等。

merge:经过反复的 review 通过后,就可以 merge change 了。一个改动就成功的保存到了中心代码仓库。有时候可能有代码冲突,可以直接在 gerrit 上面尝试 rebase,如果不成功的话,就需要在本地手动处理代码冲突,然后重新上传代码。

基本的使用

这,真没太多好说的,网页版的东西,做的也挺人性化的,多尝试使用一下应该都没什么大问题的。主要还是说一下一些常用,但容易被人忽视的功能吧。

从 gerrit 上面下载一个正在 review 的 change

通常一个 change merge后,你可以通过 repo sync 将这个 change 下载下来,但有时候,你需要将一个还没有merge 的 change 下载下来,这时候,你可以到一个 change 的页面,你可以注意到一个个 download 的地方,然后就有好些下载选项。其中 cherry-pick 是比较常用的方式,你选了下载方式后,gerrit 会智能的生成相应的命令,你只需要复制下来,然后在你的项目目录下面执行这个命令就可以了。

比较不同的 patch set

每个 change 通常需要重复“review - 改代码 - 上传新 patch”多次才能最终完成,而每一次上传就称为一个 patch。gerrit 会方便的把你的改动内容列出来方便 review,而且你还可以选择比较不同的 patch set,在一个change 的页面,仔细看看还是比较容易找到地方的。

查找 change

gerrit 在页面右上角有一个搜索框,通过搜索匹配,你可以找到你想要的 change。比如 owner,project,status,branch 等等。比如:

status:open project:xxx

owener:"xxxxx"

当然也可以直接输出想要搜索的东西, gerrit 会尝试各种匹配。这个搜索功能还是很强大的,多熟悉一下搜索功能,在真正使用的时候就可以事半公功倍。

账户设置

前面提到 git 是有多种方式和远程仓库交互,而 gerrit 也是基于 git 的一个工具,那么 git 和 gerrit 服务器的交流其实很大一部分也就是和远程 git 仓库的交流。那么在 gerrit 里面来设置 ssh public key 就比较好理解了,其实就是,gerrit 好像也提供其他验证方式,但 ssh 还是最常用且最实用的一种方式。

小结

gerrit 本身是一个网页版的工具,感觉也没有太多好讲的,而且通常情况下,它本身还是相当容易使用的。如果要更深入的话,不只需要了解这个系统的本身,还需要对 git 的很多细节有比较深刻的理解,毕竟这个工具是基于 git 的。但通常来说,能够理解在整个系统中它所扮演的角色,已经可以给日常工作带来很大的帮助了。

到此,git & repo & gerrit 整套系统的结构也就差不多讲完了。整套系统配合上适当的使用方式,可以产生不可思议的效果,就像 Google 就用他们来管理了 android 的整个代码。而且这套工具体现的代码管理的思想也是相当不错的。希望对有兴趣的人带来些帮助。限于作者水平,难免会有些写错写漏的地方,有什么建议和意见也欢迎提出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: