目标:为提高代码质量,减少开发bug,现采用GitLab的Merge Request(MR)做代码评审。
一、GitLab 代码merge机制
Gitlab提供了两种代码merge机制:
1. 在本地将源分支(Source branch)代码合并到目标分支(Target branch),然后Push到目标分支(Target branch)
2. 将源分支(Source branch)Push到远端,然后在GitLab指定目标分支(Target branch)发起Merge Request,对目标分支(Target branch)拥有merge权限的用户执行Merge操作,完成合并。
这两种方式仅有第2种适合code review,所以我们要做的事情是设置权限,拒绝本地merge后push到远端的操作。在第2种方式中 发起MR后,由有merge权限用户做code review,通过后执行merge操作。
二、Code Review核心流程
code review核心流程:
1.创建分支。包括:总开发分支(e.g: feature/optimat)和各老师自己开发分支(e.g: feature/optimat_wxc)
2.Push修改并提交MR。各老师开发完成后push到远端,通过gitlab页面提交MR,指定Reviewer 和 Assignee(一般指定Reviewer即可)。
3.Code Review。Reviewer 进行code review, 若没有发现问题,可以直接点击merge;如果发现问题,可以发起讨论或者直接关闭MR。
三、Code Review具体操作步骤
本部分主要描述:代码修改,代码提交,发起MR,进行code review,提交merge。
-
代码修改、提交
各老师自己开发分支push到远端。
-
发起MR
选择开发分支,创建MR。
选择source 分支(开发提交代码分支)、target分支(代码合并到的目标分支)。
增加MR描述,尽量描述更改内容,可备注重点关注等。选择Reviewer老师并提交。
-
Code Review
open in Web IDE进行code review。
4.Merge
审核完成后,进行merge或者close merge操作。
四、注意事项
尽可能保证MR颗粒度适中,应避免颗粒度过小导致过多MR,也应避免颗粒度过大,给review带来复杂度不易发觉问题。
代码评审是在小段的逻辑完整的代码片段上执行的,例如功能,任务,错误修复,改进等。