Gerrit Review代码
Gerrit上代码提交的三种状态
- 代码提交至Gerrit之后,有三种状态,分别是:Open、Merged、Abandoned。
- Open 状态的代码需要经过Review,Verify,Submit操作后才会真正入库,即成为Merged状态
- Merged 状态的代码已经入库,不能再Abandoned,只能Revert.
- Open 状态的代码由于各种原因不能入库的可以放弃,即Abandoned状态。
- Abandoned 状态的代码不能再入库,如有需要,可以“Restore”。
Gerrit上代码提交的详细信息
代码提交之后,登录Gerrit,可以看到此次提交已经显示在列表中,如下图
-
- 绿箭头所指是目前查看的代码状态,即Open状态的列表。
- 列表显示的信息依次是
ID | Subject | Owner | Project | Branch | Updated | CR | V |
---|---|---|---|---|---|---|---|
ChangeId | 提交信息的第一行 | 提交人 | 库名 | 分支名 | 最后变更的时间 | Review的状态 | Verify的状态 |
-
- CR 的状态有四种,分别为 ✘ (-2),-1,+1,√ (+2)
- 其中-1并不影响入库,但-2则需要重新提交新的Patch Set,或者设置-2的成员批准才能入库。
- V 的状态有两种,分别是 ✘ (-1),√ (+1)
- 其中-1的状态不能入库,需要重新编译验证(Verify)通过才可以入库。
点击列表中的“ID”或“Subject”,则可以显示该提交更详细的信息。下图的放大效果中显示了该提交当前的状态。
-
- Rerviewer Jenkins成员给该提交 -1 ,这是Jenkins系统的自动任务,在这里用于检查提交信息(git log)的格式;
- Need Verified 表示该提交还没有进行编译验证;
- Need Code-Review 表示该提交还没有进行代码Review,请注意,这里指Review +2
Note: Review +2表示更高一级的Review权限,即需要有此权限的成员Review代码后判断是否允许代码入库。两个Review +1并不能获得同等的效果
下图显示了提交详细信息中的下半部分,主要有每次提交的Patch Set详情,该提交修改的文件列表,以及每次Review的说明信息。
-
- 两个Patch Set表示该提交在入库前又做过一次修改:代码入库前允许有多次修改,包括对git log的改动;
- 点击修改文件列表中显示的文件(红色横线标识),显示该文件修改前后的对比,如图中绿色箭头所指(实际效果为在新的页面中展示);
- 文件修改的对比版本可以自由选择是与Base或是与某一个Patch Set作对比,请注意图中“Old Version History”(浅紫色框)下拉菜单的选择;
- Comments信息是Review代码时填写的信息。
代码的Review
点击Review按钮(上图红圈标识),可以对当前提交做Review的操作,如下图:
-
- 不同权限,可以看到左右不同的页面,选择相应Review的分数即可;
- 信息框中可以填写此次Review的更详细的信息,并点击“Publish”按钮。
代码的Verify
- 一般情况下,代码都是通过Jenkins的 Verify 任务完成编译验证并自动打分。
- 有Verify权限的成员,可以在确认代码编译验证通过之后,手动打分(极不推荐),选择Verfiy的分数,填写信息,并点击“Publish”按钮。如下图:
代码的Submit
- 代码经过Review +2和Verify +1之后才可以Submit入库;
- Review和Verify的顺序没有要求。
如图,可以看到两个按钮“Publish Comments”和“Publish and Submit”
-
- 点击“Publish Comments”只进行Review或Verify的打分;
- 点击“Publish and Submit”在Review或Verify的打分同时直接Submit。
如果只选择了给Review或Verify打分,也可以进行Submit,如下图,点击“Submit”按钮
至此,该提交Review完成,正式提交入库,状态变为“Merged”