跳到主要内容

变更请求

代码评审是提升编码质量,保障合入代码安全性的一个重要手段。同时,在共建协作场景中,通过发起一个变更请求,请求他人合并自己贡献的代码,也是非常常见的操作。 那么,如何在 AtomGit 中使用变更请求来贡献代码呢?

新建变更请求

进入代码库的变更请求列表页,点击新建变更请求。

若设置默认评审人(详见分支设置)则在评审人部分自动将默认评审人填写在评审人列表中。

申请变更,需要确定一个来源和目标。

  • 在同库拉分支的开发模式下,在同一个仓库中,选择来源分支和目标分支;

  • 在跨库 Fork 的开发模式下,对于根库和派生库,选择来源分支和目标分支; 对于有派生关系的库,可以通过顶部的「切换为跨库合并」展开选择库的入口。

当源和目标比较后存在差异时,可以创建变更请求。此时可以预览变更的提交列表和文件改动内容,确认无误后填写变更请求基础信息,完成创建。

支持标记 [WIP] 识别草稿状态的变更请求,此时不会通知评审人前来评审,也无法通过评审。直到删除标题上的 [WIP] 标识后正常可评审。

查看变更请求详情

创建完成后进入变更请求详情: 可见页面有4个菜单:

  • 概览
  • 文件改动
  • 提交改动
  • 自动化检查

(1)概览

包括变更请求相关的状态、描述等基础信息、评审人信息、时间线动态和事件记录,以及是否已达到合并状态的提示;

(2)文件改动

呈现代码文件的变更内容对比,支持按版本进行选择查看,以追溯代码变更历史过程。 点击文件名展开查看变更文件内容:

评论

在查看代码时,可针对代码行进行评论: 评论支持两种模式:

  • 立即发出:立即发布,有读权限的人均可见
  • 草稿评论:将作为草稿,仅自己可见,评审结束后需要通过右上角「完成评审」按钮统一发出:

所有评论可以展开待解决事项面板统一查看,点击评论的蓝色链接,可以直接跳转到评论对应位置:

评论本身携带解决状态,创建后默认为未解决,由评审发起人处理完问题后通知评审人确认,确认无误后评审人可解决评论。 此外,库管理员可以对解决状态进行修改。

评论是否已解决可以作为变更请求是否能合并的卡点条件:管理员可以进入库设置,将保护分支设置评审的评论必须全部解决才能合并,设置后若还有评论未解决,则无法合并。

此外,还可设置代码查看视图:

代码冲突解决

当合并的分支存在代码冲突时,系统会自动卡点,无法进行合并操作。平台提供了冲突解决的建议:

//步骤1 fetch并切换到源分支
git fetch origin
git checkout sourceBranch
//步骤2 合并目标分支
git merge origin/master
//步骤3 解决冲突并push

(3)提交改动

呈现提交在各个版本的变化过程(即range-diff),可以基于此视图了解每次推送后提交的变化情况,如提交被删除、新增或者修改了提交本身的内容,如message、顺序等。

(4)自动化检查

可通过三方应用扩展的自动化检查结果视图。

评审人评审代码

评审人数的限制也可以在保护分支中进行设置,通过数量小于设定数目时则不允许合并。

  • 库管理员进入代码库设置
  • 选择分支设置-保护分支规则
  • 按需选择适合自己的评审条件

设置完成后在向该保护分支合并的评审请求,都将遵守该合并条件,如不满足则不允许合并:

如需评审代码,需要将用户加入评审人,加入后对方则可以针对评审发表评审意见,包括评论、通过或者不通过该变更请求。

评审人可点击右上角完成评审,提交自己的评审意见:

合并评审

在所有合并前必须满足的条件都达标后,有合并权限的用户可进行合并操作。 合并人点击右上角「合并」按钮,即可选择合并方式完成合并。 合并默认支持四种方式,具体参见变更请求设置,按需选择。