更新时间:2023-07-25 GMT+08:00

合并请求评审

概述

代码托管服务支持多分支开发,并为分支合并建立了可配置的审核规则,当一个开发者发起一次合并请求时,仓库成员都可以参与到评审中,让更多的人参与到代码审视中,以确保合并代码的正确性。

关于合并请求的相关设置

如果不做任何设置,在进行分支合并请求时将没有任何限制,这样并不安全,建议团队在使用此功能前了解相关的设置项。

合并请求设置:可设置分支合并时的相关规则。

保护分支管理:可配置分支是否允许被合并。

合并请求列表

在仓库详情的“合并请求”页签中,可以看到“合并请求列表”页面。

  • 可以切换、查看不同状态的请求单。
  • 通过单击请求标题可以进入合并请求详情页。
  • 可以查看请求的简要信息,包括:涉及的分支、创建时间、创建人。
  • 提供了多条件维度的查找功能。
  • 在右上方有新建合并请求入口。

已关闭:代表该请求被取消,分支未产生实际合并。

已合并:代表该请求已经完成审核,并完成分支合并的动作。

合并请求详情

  • 在合并请求“详情”中,可以看到合入条件达成的状态、合并人、审核人、所关联的工作项等信息,同时可以查看可留下评审意见,可标注评审意见为待解决状态,并可看到该合并涉及的所有动态。
  • 在合并请求“提交记录”中可以看到源分支的相关提交记录。
  • 在合并请求“变更文件”中,可以看到此次会合并的变更内容,并可具体筛选出新增、修改、删除、重命名等变更种类。
  • 在合并请求“流水线”中,可以看到门禁流水线的信息。

新建合并请求

假设管理员已经设置好了分支合并规则,当您在开发分支上完成了功能开发,并需要发起合并评审时,请按照以下流程操作。

  1. 进入仓库列表。
  2. 单击仓库名称进入仓库详情。
  3. 切换到“合并请求”页签。
  4. 单击“新建合并请求”按钮,进入“分支对比”页面,选择要合并的分支。

    如上图,在本示例中,将刚完成开发任务的dev002分支合并到master分支中。

  5. 单击“下一步”按钮,此时系统会检测两条分支是否有差异。

    • 如果没有差异,系统会做出提示,且不能新建合并请求。
    • 如果分支存在差异,则进入如下“新建合并请求”页面。

    “新建合并请求”页面的下方可以看到两条分支的文件差异对比详情、要合并分支的提交记录。

  6. 输入“标题”“描述”

    “描述”会结合分支合并情况与要合并分支的提交(commit)备注生成默认值,您可以根据项目情况进行修改。

  7. 选择“合并人”“评审人”等。

    • 合并人:在合并请求满足合入要求时,一般是所有审核人审核通过、所有问题都被解决(可设置不解决也能合并),合并人有权限执行合并操作(单击按钮)、也有权限关闭合并请求。
    • 审核人:被指定参与合并评审,可以给出审核意见(审核通过、拒绝),也可以提出问题给发起人。
    • 关联工作项:可选择将合并动作关联到某个工作项,以起到自动改变工作项状态的作用。
    • 合并后删除源分支可选择是否合并后删除源分支,初始会带入仓库设置中预设状态。
    • Squash 合并选择是否将合并请求的所有提交合并为一个并保留干净的历史记录。

  8. 单击“确定”按钮,可以完成合并请求的提交,页面会跳转到该“合并请求详情页”

    此时如果发起者也是一个评审人,可以直接在“合并请求详情页”对分支合并请求进行评审

对合并请求进行评审与执行合入

  1. 进入仓库列表。
  2. 单击仓库名称进入仓库详情。
  3. 切换到“合并请求”页签。
  4. (可选,如果您不是评审人,可跨过此步)对合并请求进行审核操作。

  5. (可选)可以对提交内容进行评论并遗留问题待发起者答复。
  6. 当分数高于门禁分数时,可以选择是否删除源分支合入,操作后请求状态为“已合并”(只有合并人才能执行合并操作)。

    当评审人都同意合入时,可以单击“合入”按钮进行合入,也可以在合入按钮右侧的扩展中,选择关闭申请。

查看提交评审记录

  1. 项目组成员提交了某一文件后,可在“历史”页签中查看记录。

  2. 单击“记录名称”查看详情,并对修改前后的文件内容进行对比,可在“评论”页签查看项目组成员评论记录,评论完成后单击“确定”。

  3. 单击“评审记录”页签,可在“提交评审记录”里查看记录。