技术管理者---提升研发代码质量---代码审核Code Review

时间:2024-04-10 08:40:11

本文是《技术管理者---提升研发代码质量》系列文章第三篇,第一篇整体介绍请看博文《技术管理者---提升研发代码质量---总体方法论》,第二篇整体介绍请看博文《技术管理者---提升研发代码质量---代码检查工具Sonar》。本文重点讲两部分内容:1)GitLab MergeRequest介绍;2)研发体系流程中如何强制使用MergeRequest。

 

GitLab MergeRequest介绍

现在越来越多的企业选择自建代码私服GitLab,用于托管本企业的产品代码。依附GitLab平台,做Code Review有两种方式,一种方式是使用外部同步系统Gerrit,第二种方式是使用GitLab自带的Merge Request功能(当然还有其他的Code Review方式,博主就不介绍了)。 下面大致分析一下两者的差异

技术管理者---提升研发代码质量---代码审核Code Review

结合第二篇博文中介绍的Gerrit使用的代价稍大一些,故博主所在公司使用GitLab自带的Merge Request方式做Code Review。

同理,要想让Code Review发挥作用,并且是持续的发挥作用,就必须将Code Review这一过程作为公司研发流程中必须经历的一个环节,这样才能保证Code Review持续的发挥作用。下面博主介绍GitLab的Merge Request与研发流程整合方法:

技术管理者---提升研发代码质量---代码审核Code Review

最重要的一环,Review管理员做MergeRequest的过程就是Code Review的过程,就这需要研发体系根据企业自身的研发规范与业务特征,不断沉淀出MergeRequest检查项Item(博主将在后期单独以一篇博文的形式介绍研发规范)。

 

研发体系流程中如何强制使用MergeRequest(配置、提交过程详解)

  • 创建GitLab账号打通Idea(建开发人员账号)

由管理员在GitLab中创建账号:刘青/LiuQin/[email protected]/qwer1234,此过程较简单。

  • 创建开发人员SSH秘钥上传GitLab

在刘青机器所在客户端创建SSH秘钥:任意位置右键菜单,选择“Git Bash Here”

技术管理者---提升研发代码质量---代码审核Code Review

输入如下内容(注意最后要回车三次):

$ git config --global user.name "LiuQin"
$ git config --global user.email "[email protected]"
$ ssh-****** -t rsa -C "[email protected]"

技术管理者---提升研发代码质量---代码审核Code Review

到如上所在目录,拿到id_rsa的内容,上传到GitLab对应账号当中:

技术管理者---提升研发代码质量---代码审核Code Review

  • Idea依据远程Dev分支,创建本地Dev分支(依据“研发体系怎么使用GitLab 的MergeRequest(简图)”逐个展开详解)

开发下载指定protected分支代码,并创建本地个人分支LiuQin_dev_20180820做开发(注意这里必须将代码提交的目标分支设置为protected,只有管理员才能做Merge操作,不允许直接push到此分支)

技术管理者---提升研发代码质量---代码审核Code Review

  • Idea依据本地Dev分支,创建个人Dev分支

技术管理者---提升研发代码质量---代码审核Code Review

  • Idea在个人Dev分支开发代码,然后做Commit代码

技术管理者---提升研发代码质量---代码审核Code Review

  • Idea中Checkout到Dev分支,Pull最新Dev分支代码

技术管理者---提升研发代码质量---代码审核Code Review

  • Idea中Checkout到个人Dev分支,做本地代码Merge(原Dev-->目的个人Dev)

技术管理者---提升研发代码质量---代码审核Code Review

技术管理者---提升研发代码质量---代码审核Code Review

  • Idea中解决冲突,将个人Dev再次提交并Push到远程服务器

技术管理者---提升研发代码质量---代码审核Code Review

  • 开发登入GitLab,看到自己分支发起MergeRequest请求

技术管理者---提升研发代码质量---代码审核Code Review

技术管理者---提升研发代码质量---代码审核Code Review

技术管理者---提升研发代码质量---代码审核Code Review

  • Review管理员登入GitLab处理此MergeRequest做代码审核工作

审核通过代码入库(删除开发个人分支),审核不通过直接关闭此MergeRequest

技术管理者---提升研发代码质量---代码审核Code Review

技术管理者---提升研发代码质量---代码审核Code Review

如果管理员处理MergeRequest做code view的时候,发现待合并的有冲突了,会出现如下的情况(需要尽量避免这种情况,因为GitLab页面做代码Merge很不方便),需要处理好冲突 再通过。

技术管理者---提升研发代码质量---代码审核Code Review

通过点击上面的“Resolve conflicts”就可以处理冲突,然后再返回做code view,处理Merge Request即可。

 

    这样就可以将Code Review(用GitLab的Merge Request功能实现)作为研发流程必须经历的一个环节发挥作用啦,祝各位读者所在研发的研发质量越来越高。欢迎通过评论方式做讨论。