# 新建合并请求

在特性分支上完成功能开发后,您需要将该分支上的代码更新到主干,此时应发起一个合并请求(Merge Request),简称 MR。
工蜂支持多种创建合并请求的方式,您可以在工蜂网页端找到创建入口,也可以使用命令行发起

# 网页端发起同一个项目的合并请求

导航到项目—合并请求,您会在页面上方发现 +创建合并请求按钮,单击这个按钮。

在新打开的页面选择您的源分支,和目标分支。 其中“源分支”应该为您的提交分支,“目标分支”一般为发布分支。当源分支与目标分支存在差异时,您可以点击下一步

然后根据页面的提示输入内容,点击创建合并请求即可。

# 网页端发起跨项目的合并请求

如果您想在某个公开项目发起 MR ,又没有该项目的写权限。您可以先对项目进行 Fork。 然后在 Fork 的项目内提交后,发起跨项目的 MR。

导航到您的 Fork 的仓库 - 合并请求,点击 +创建合并请求 来到新建 MR 页面。 源分支为您的 fork 项目(您有提交的项目),目标分支选择您没有权限的公开项目 之后的步骤便跟在同一个项目内发起 MR 一致了。提交之后,您可以在上游项目的合并请求列表中看到这个 MR。

# 命令行发起合并请求

在客户端推送分支代码到工蜂

git push origin my-source-branch

返回值中将自动生成 MR 的创建链接

remote: | To create a merge request for my-source-branch, visit:                                                          |
remote: |     http://git.tencent.com/my-group/my-project/merge_requests/new?merge_request%5Bsource_branch%5D=my-source-branch |

复制该链接并粘贴到您的浏览器中,将进入合并请求发起页面,在 web 端完成其他相关信息填写并提交即创建成功。
此外,工蜂还支持使用Git push options指令在客户端发起 MR,并可同步设置标题、描述、评审人等参数,省去网页端手动编辑的步骤。

# 编辑合并请求

进入一个项目的合并请求模块,选择您要修改的合并请求,然后点击编辑按钮。

image.png

选择您要修改的部分进行修改,修改完毕,鼠标拉到页面下方点击保存变更即可。

image.png

# 添加评审人

选择你要修改的 MR,点击右侧的编辑评审人

单击评审人或者必要评审人区域的空白处会出现评委下拉框,勾选您需要的评委将其添加到评审人名单中。

最后单击确认

注:设置默认评审参见 如何给合并请求添加 / 删除评审

# 移除评审人

选择你要修改的 MR,点击编辑评审人

# 合并请求评审视图

合并请求过程中,作者可根据评委意见随时推送最新代码修改,系统将自动更新 MR 单,同步源分支代码修改。
为方便代码评审,工蜂提供三种视图:修订集视图、提交点视图、预合并视图,在「变更」tab 下可进行视图切换。

# 修订集视图(推荐)

工蜂 MR 将一次 push(可能包含多个 commit)视为一次代码修订,源分支代码变更内容会同步更新至相应 MR 单,产生一个新的修订集版本。「修订集视图」用于针对性查看两次修订前后的代码变化。

如下图示意,作者向 MR 的源分支先后 push 三次,产生三个版本,其中版本二包含 2 个提交点。系统默认展示 base 点和最新版本之间的代码差异,用户可通过下拉选项切换至任意两版本查看单次修订情况。

# 提交点视图

「提交点视图」中可选择提交点范围,查看一个或多个连续提交点产生的代码变更。 该视图在基于分支合并的评审(MR Review)、基于单分支提交的评审(Commit Review)两种模式下均可使用。

# 预合并视图

工蜂合并请求采用 Git “三点对比”,仅取源分支到 base 点的单侧提交差异,不会将目标分支的提交点纳入差异计算。如下图,MR 的代码 diff 由源分支的最新提交 D 与 base 点对比产生,与目标分支的提交点 C 无关。这种机制能更好地保证合并请求待评审内容的稳定性,不会被目标分支的频繁变动影响,聚焦本次变更。

但您可能遇到过这样的问题:目标分支和源分支同时引入了相同的代码修改 X,但发起合并请求后,X 仍然展示在 diff 中,与预期内容不符。当您希望获得更精准的预期合并结果和代码差异时,可以使用「预合并 (pre-merge) 评审视图」,其原理是生成与目标分支的预合并点,代码 diff 只展示相对 master 有实质变更的内容。

如上图所示,切换至预合并视图时,平台将生成两分支预合并点 M,计算目标分支最新提交 C 与预合并点 M 之间的差异作为代码 diff,即实质修改的内容。源分支与目标分支的更新均会导致预合并点更新,目前,在工蜂 MR 页面上仅展示最新版本的预合并点。

此外,当合并冲突时,预合并点仍会生成,可直观展示出文件冲突详情。

# 合并合并请求

当评审通过且没有冲突时。 页面则处于待合并状态。可以选择其中一种合并方式。

Ps: 您可以设置 默认合并请求方式

当用户无合并权限可能会出现下图提示:

鼠标放到 有权限 上会出现具体阻止合并 MR 的原因(包括但不限于此原因):

如有合并需求,可按需添加合并负责人/联系对应负责人合并该 MR。
或者进入保护分支页面,找到该分支,调整对应保护分支的的合并和推送权限

注:进入保护分支设置需要有 master 及以上权限

# 查看 / 搜索合并请求

个人中心看板的合并请求中,您可以看到所有您创建的合并请求。

导航到项目—合并请求以查看这些合并请求。

还可以在红色画框部分输入标题或者描述进行对合并请求的搜索过滤。

# 下载合并请求

导航到项目—合并请求,点击右上角“下载”的图标。

在弹出来的页面您可以选择下载全部合并请求或者选择创建合并请求的时间段来下载它。下载格式为 CSV

最后点击 导出 CSV 然后选择一个地方保存这个文件即可。

lastUpdate: 4/4/2023, 7:25:28 PM