代码托管 CodeArts Repo-仓库设置:配置“MR预合并”

时间:2023-11-01 16:18:52

配置“MR预合并”

当MR创建后,您可自定义WebHook、流水线等下载插件的脚本,即下载代码内容可以由您自己控制。

  • 如果勾选“MR预合并”,则服务端会帮助您生成一个隐藏分支,表示该MR代码已经合入,进而您可以直接下载已经存在在隐藏分支的代码。
  • 如果未勾选“MR预合并”,您需要在客户端本地做预合并,即分别下载MR源分支、MR目标分支的代码,并在构建执行机自己做合并动作。

操作命令

服务端预合并命令如下:

git init  git remote add origin ${repo_url克隆/下载地址}  git fetch origin +refs/merge-requests/${repo_MR_iid}/merge:refs/${repo_MR_iid}merge

如果未勾选,则可以通过客户端做预合并操作,本地新建干净的工作目录,命令如下:

git initgit remote add origin ${repo_url克隆/下载地址}git fetch origin +refs/heads/${repoTargetBranch}:refs/remotes/origin/${repoTargetBranch}git checkout ${repoTargetBranch}git fetch origin +refs/merge-requests/${repo_MR_iid}/head:refs/remotes/origin/${repo_MR_iid}/head git merge refs/remotes/origin/${repo_MR_iid}/head --no-edit

功能优势

对于构建实时性要求高的场景,如:一个MR可能拉起几十或上百台服务器的构建,本地/客户端做预合并可能会与服务端产生的结果不一致,导致构建代码获取不够准确、构建结果不准确等问题。使用服务端预合并可以解决该实时性问题,并且构建脚本命令更简单,开发人员或CIE更好上手。

support.huaweicloud.com/usermanual-codehub/repo_ug_8005.html