当前位置: 首页 > news >正文

极狐GitLab 合并请求依赖如何解决?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有:

  • 极狐GitLab 中文文档
  • 极狐GitLab 中文论坛
  • 极狐GitLab 官网

合并请求依赖 (PREMIUM ALL)

  • 在极狐GitLab 16.6 中引入了对复杂合并依赖关系的支持,通过名为 remove_mr_blocking_constraints 的功能标志进行控制。默认禁用。
  • 在极狐GitLab 16.7 中 GA,功能标志 remove_mr_blocking_constraints 被移除。

一个功能可以跨多个合并请求,分布在多个项目中,且工作合并的顺序可能非常重要。当需要按特定顺序合并工作时,可以使用合并请求依赖关系。以下是一些示例:

  • 确保对必需库的更改在更改导入该库的项目之前合并。
  • 防止仅包含文档的合并请求在功能工作合并之前合并。
  • 要求在合并尚未拥有正确权限的人员的工作之前,先合并更新权限矩阵的合并请求。

如果您的项目 me/myexample 导入了 myfriend/library 库,
您应该在 myfriend/library 发布新功能时更新您的项目。
如果您在 myfriend/library 添加新功能之前将更改合并到 me/myexample,
这将破坏您项目的默认分支。合并请求依赖关系可以防止您的工作过早合并:

在这里插入图片描述

您可以将 me/myexample 的合并请求标记为 草稿并在评论中解释原因。此方法是手动的,不具备可扩展性,尤其是当您的合并请求依赖于多个不同项目中的其他合并请求时。相反,您应该:

  • 使用 草稿已准备好 状态来跟踪单个合并请求的准备情况。
  • 使用合并请求依赖关系来强制执行合并请求的合并顺序。

合并请求依赖是一个 专业版 功能,但 GitLab 只对 依赖 合并请求强制执行此限制:

  • 专业版 项目的合并请求可以依赖于任何其他合并请求,即使它是在 免费 项目中。

  • 免费 项目的合并请求不能依赖于其他合并请求。

嵌套依赖

GitLab 版本 16.7 及更高版本支持间接的嵌套依赖。一个合并请求可以有最多 10 个阻塞者,而它也可以阻塞最多 10 个其他合并请求。

在此示例中,myfriend/library!10
依赖于 herfriend/another-lib!1,而后者又依赖于 mycorp/example!100:

在这里插入图片描述

嵌套依赖关系不会显示在 GitLab 用户界面中,但 UI 支持已在 epic 5308 中提议。

NOTE:一个合并请求不能依赖于它自身(自引用),但可以创建循环依赖关系。

查看合并请求的依赖关系

如果一个合并请求依赖于另一个,合并请求报告区域将显示有关依赖关系的信息:
在这里插入图片描述

要查看合并请求的依赖关系信息:

1.在左侧边栏中,选择搜索或跳转并找到您的项目。
2.选择代码 > 合并请求并识别您的合并请求。
3.滚动到合并请求报告区域。依赖的合并请求会显示关于设置的依赖关系的总数的信息,例如**(状态警告)** 依赖于 1 个合并请求的合并。
4.选择展开以查看每个依赖项的标题、里程碑、受指派人和管道状态。

在您的合并请求的所有依赖关系都合并之前,您的合并请求无法合并。会显示消息 合并被阻止:只有在上述项被解决后才能合并。

已关闭的合并请求

已关闭的合并请求仍然会阻止其依赖的合并请求进行合并,因为合并请求可以在未合并其计划中的工作之前关闭。如果合并请求关闭后,依赖关系不再相关,您可以将其移除作为依赖,以解除对依赖合并请求的阻塞。

创建新的依赖合并请求

当您创建一个新的合并请求时,您可以防止它在其他特定工作合并之后合并。即使该合并请求位于不同的项目中,这个依赖关系仍然有效。

前提条件:

  • 您必须至少拥有开发者角色,或者有权限在项目中创建合并请求。
  • 依赖的合并请求必须位于 Premium 或 Ultimate 级别的项目中。

创建新的合并请求并将其标记为依赖于其他合并请求的步骤:

1.创建一个新的合并请求。
2.在合并请求依赖关系中,粘贴应该在此工作合并之前合并的合并请求的引用或完整 URL。引用的格式为path/to/project!merge_request_id。
3.选择创建合并请求

编辑合并请求以添加依赖关系

您可以编辑现有的合并请求并将其标记为依赖于另一个合并请求。
前提条件:

  • 您必须至少拥有开发者角色,或者有权限编辑项目中的合并请求。

操作步骤:

1.在左侧边栏中,选择搜索或转到并找到您的项目。
2.选择代码 > 合并请求并识别您的合并请求。
3.选择编辑
4.在合并请求依赖关系中,粘贴应该在此工作合并之前合并的合并请求的引用或完整 URL。引用的格式为path/to/project!merge_request_id。

从合并请求中移除依赖关系

您可以编辑一个依赖的合并请求并移除依赖关系。
前提条件:

  • 您必须拥有允许您编辑合并请求的项目角色。

操作步骤:

1.在左侧边栏中,选择搜索或转到并找到您的项目。

2.选择代码 > 合并请求并识别您的合并请求。

3.选择编辑

4.滚动到合并请求依赖关系并选择每个要移除的依赖关系旁边的移除

NOTE:如果您没有查看权限的合并请求依赖关系,会显示为1个无法访问的合并请求。您仍然可以移除这个依赖关系。

5.选择保存更改

故障排除

在项目导入或导出时保留依赖关系

在导入或导出项目时,依赖关系不会被保留。

相关文章:

  • Python字符串三剑客:len()、split()、join()深度解析
  • RK3588芯片NPU的使用:官方rknn_yolov5_android_apk_demo运行与解读
  • 【深度学习核心技术解析】从理论到实践的全链路指南
  • x-cmd install | brows - 终端里的 GitHub Releases 浏览器,告别繁琐下载!
  • Stack和Queue和deque的讲解(底层实现 手撕版)
  • ospf综合作业
  • 企业办公即时通讯软件BeeWorks,私有化安全防泄密
  • Java Agent 注入 WebSocket 篇
  • 移动通信行业术语
  • 去掉从网页粘贴到Word的“↓“(向下的箭头)符号的方法
  • SAIL-RK3588协作机器人运动控制器技术方案
  • java—13 RocketMQ
  • 理解欧拉公式
  • VBA技术资料MF300:利用Mid进行文本查找
  • linux 中断子系统 层级中断编程
  • SEO的关键词研究与优化 第二章
  • Python3 基础:函数定义与调用
  • (八)深入了解AVFoundation-采集:拍照功能的实现
  • PyTorch生成式人工智能实战(2)——PyTorch基础
  • day002
  • 企业称县政府为拆迁开发借款2亿元逾期未还,河北青龙县:开发搁置,将继续沟通
  • 全品系停货?泸州老窖:暂未接到通知,常规调控手段
  • 广东东莞调整普通住宅价格标准:一类镇街上浮300余元/平方米
  • 外交部:中方在黄海暂定海域建造渔业养殖设施,同中韩海域划界无关
  • 外交部回应美财长涉中国发展经济模式言论:损害各国人民共同利益的是美方
  • 习近平同肯尼亚总统鲁托会谈