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

仓库设置

仓库设置位于仓库详情中的 设置 > 仓库管理 > 仓库设置

默认分支会作为进入本仓库时,默认选中的分支,也会作为创建合并请求时,默认的目标分支。仓库新建时,master分支将被作为默认分支,可以随时手动调整。

此设置只针对被设置的仓库生效。

只有仓库管理员和仓库所有者能看到这个页面且有设置权限,设置完成后单击“提交”即可生效。

表1 参数说明

参数项

说明

是否禁止Fork仓库

默认不勾选,勾选后,该仓库会禁止所有人Fork仓库。

是否禁止开发者角色创建分支

默认不勾选,勾选后,开发者角色不允许创建分支。

说明:

可设置白名单,禁止非白名单内的开发人员创建分支。

是否禁止开发者角色创建Tag

默认不勾选,勾选后,开发者角色不允许创建Tag。

是否禁止Committer角色创建分支

默认不勾选,勾选后,Committer角色不允许创建分支。

是否支持MR预合并

默认不勾选,勾选后,服务端会自动生成MR预合并的代码,相比客户端使用命令做预合并操作更高效简洁、构建结果更精准,适用于对构建实时性要求严格的场景。

分支名规则

  • 不能超过200字节。
  • 创建分支不支持以“-”、“refs/heads/”、“refs/remotes/”开头,不支持空格[\<~^:?*!()'‘’|等特殊字符,不支持以“./”或“.lock”结尾。
  • 新建的分支不可以和原有的分支/tag名重复。

Tag名规则

  • 不能超过200字节。
  • 创建tag不支持以“-”、“refs/heads/”、“refs/remotes/”开头,不支持空格[\<~^:?*!()'‘’|等特殊字符,不支持以“./”或“.lock”结尾。
  • 新建的tag不可以和原有的分支/tag名重复。
  • 字节(byte):指一小组相邻的二进制数码,是计算机重要的数据单位,通常用大写B表示,1B(byte)= 8bit(位)。
  • 字符:表示数据和信息的字母、数字或其他符号。

配置“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 init
git 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更好上手。

分享:

    相关文档

    相关产品