Ale*_* N. 8 mercurial mercurial-subrepos
如果Mercurial可以做到这一点,我很好奇.我想在项目中有一个子目录,它总是固定在手动指定的变更集上,或者更好 - 标记.
基本上我想要实现的是在主repo中有一个核心系统,然后是subrepos中的所有模块和组件,但我不希望那些subrepos指向tip,只是指向那些组件/模块的主要版本(因此标签).
子存储库的工作方式与您想要的完全一样。
Mercurial 永远不会自动将子存储库更新到提示。它始终保留在您选择的变更集上。从文档中:
子存储库不会自动跟踪其源的最新变更集。相反,它们会更新为与顶级变更集中签出的变更集相对应的变更集。这样开发人员在更新时始终可以获得一组一致的兼容代码和库。
为了实现您想要的,您可以按照以下步骤操作:
echo subrepo = https://example.com/subrepo/repo/path > .hgsub
hg add .hgsub
hg clone https://example.com/subrepo/repo/path subrepo
hg -R subrepo update mytag
hg commit
这将创建一个子存储库目录,其中包含指定存储库的内容,mytag
只要您不手动更新到其他内容,该目录就会保留在标签上!
每个克隆您的存储库的人都将在与您相同的变更集上拥有子存储库(即mytag
)。
仅供参考,子存储库更新到的变更集存储在.hgsubstate
主存储库根目录的文件中。
归档时间: |
|
查看次数: |
1202 次 |
最近记录: |