DevOps微课|如何用Gerrit进行评审
作者:互联网
DevOps微课系列旨在帮助用户学习DevOps实践。
1 概述
本文详细介绍一般开发人员使用Gerrit代码评审系统基础设置和操作:包括获取代码,编辑并提交代码、添加评审员,进行代码评审、根据评审意见进行修改并再次提交,更正其他开发者提交的代码,如何解决合入冲突
2 Gerrit评审流程操作指南
评审流程图(正常流程&待修订)
2.1 使用检出代码
作用:clone 时同时下载commit-msg hook,hook的作用是在commit的时候生成change-ID(评审单的ID)
2.2 新建分支修改代码
例子:基于master分支拉出bug分支修改ec61100123456,然后提交评审
git checkout -b bugfix/ec61100123456 -t origin/master
修改,add,commit——注意每次commit都会生成一个change-ID,即一个评审
2.3 提交评审
git push origin HEAD:refs/for/master
在提交评审的同时,设置评审人
git push origin HEAD:refs/for/master%r=zhao**@zte.com.cn,r=jiang**@zte.com.cn
命令太长?可以使用别名保存常用的命令参数,如:
git config --global alias.rh “push origin HEAD:refs/for/master%r=zhao**@zte.com.cn,r=jiang**@zte.com.cn”
以后直接敲 git rh命令即实现相同操作。
!!注意
push到refs/for/master 而非master
提交时会自动在gerrit服务器上生成一个评审单,push命令返回结果时会提示评审单路径
2.4 评审流程处理
2.4.1 评审入口
My->Changes 里选择评审单
2.4.2 评审界面和流程规则
主界面1:关注1、commit的相关内容;2、change ID; 3、change status,其中Needs Workflow是评审单的状态(change状态含义说明);
主界面2:评审文件清单,点击文件查看详细差异
点击某个文件,可打开差异界面浏览差异,在该界面可以:
添加文件级comment
选取某行/段 ,添加comment
选择不同的patch,比较代码差异(base表示基础代码,开发者每修订一次代码,重新提交评审都会生成一个新的patch。)
在线编辑文件
主界面3:评审操作界面,Add…添加评审人,Reply…回复评审意见,Post发布评审意见,打分情况显示在最下方
Gerrit评审步骤和通过标准:
Gerrit评审有3个步骤:Code-Review(检查代码)、Verified(验证)、Workflow(工作流),3个步骤没有先后依赖关系,但是必须3个全部走完且通过代码才可以正式提交;
评审流程通过必须同时满足:
a. Code-Review 有+2。(多人+1不等同于+2,-2优先级大于+2,且流程打回)
b. Verfied 有+2 (多人+1不等同于+2,-2优先级大于+2,且流程打回。这步可以为CI系统验证,CI运行完毕后由CI账号自动反馈结果并打分,如下图为CI验证通过+2:)
c. Workflow +1 (一般由core组成员控制,用途为在整体流程上控制评审)
当每个步骤字体变为绿色时即表示该步骤已经通过,如果为红色代表该步骤不通过。
主界面4:评审操作历史,单击某个历史可以查看详细情况
2.4.3 评审不通过,修订commit重新提交patch,进行评审
!!提醒:注意要使用commit --amend功能来修订你的提交,而非新增一个commit,新增commit会新生成一个评审单
git commit --amend
git push origin HEAD:refs/for/master
♥ 重新提交时有冲突?(使用rebase把分支重定位到目标分支最新,然后重新提交评审)
git checkout master
git pull origin master
git checkout bugfix/ec61100123456
git rebase -i master
git push origin HEAD:refs/for/master
2.4.4 评审过程通过,提交代码
整个评审流程通过(此时评审单状态为Ready to Submit),在评审操作界面会出现按钮,点击该按钮提交代码到正式的目标分支。几点注意:
前提是该成员拥有submit权限,有些项目的策略是代码修改成员并没有submit权限,由proj-core人员来进行submit
也可以通过abandon 放弃评审
可以通过cherry pick 合并到其它目标分支
大连妇科医院哪家好 http://www.dlbh120.com/
大连看妇科好的医院 http://www.dlbhfk.com/
标签:DevOps,git,提交,代码,Gerrit,评审,master,微课,commit 来源: https://blog.csdn.net/qq_42894764/article/details/89788916