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 合并到其它目标分支

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值