我的项目由git子模块的层次结构组成(全部托管在Azure Devops上),如下所示:
A
|- B
|- C
|- D
|- E
字符串
当创建用于在Azure Devops上构建的YAML管道时,可以递归地 checkout 整个管道,并且每个子模块都在其各自的父模块指定的修订版本处 checkout 。正如您所期望的那样。
我的子模块树的深度和复杂性是相当可观的(远远超过上面的图),我想通过只检查任何特定管道所需的子模块来提高某些管道的性能。例如,我可能只想获取A
,B
,C
和D
。
但是,当我手动检出子模块时,它们检出默认分支,而不是父模块中指定的修订。
例如,我知道可以用ref:<branch_name>
更改repository
部分的ref
参数检出的分支,但这并不是我想要的。
在上面的例子中,我想检出A
引用的B
的修订版。同样,我想在获取B
后检出B
引用的C
和D
的修订版。ref
属性的文档没有指定如何实现这一点,如果可能的话,因此我提出了这个问题。
我该怎么做?是否有一个特殊的ref可以用于当前的版本?或者这只是不可能的ref
属性,我需要在脚本中手工完成这一点?(如果是后者,将有一个浅的获取深度影响这一点?)
1条答案
按热度按时间mzillmmw1#
存储库资源上的“
ref
”键只能指定特定的分支引用(refs/heads/<branch name>
)或标记引用(refs/tags/<tag name>
)。它不能指定特定的提交引用。如果你想让YAML管道可以从指定的仓库中检出特定的提交引用,你可以尝试如下:
**注意:**此方法仅在通过手动或REST API(Runs - Run Pipeline)触发管道运行时可用,该API允许您在触发运行前选择提交引用。
的数据
编辑:
如果您真的想要'
ref
'键可以指定给特定提交引用的功能,我建议您尝试在Developer Community上报告功能请求。这将更方便工程师团队接收和理解您的想法。您的反馈也有助于改进Azure DevOps产品。