【问题标题】:How to make Mercurial subrepository to always point to a certain changeset or tag?如何使 Mercurial 子存​​储库始终指向某个变更集或标签?
【发布时间】:2011-12-17 01:26:54
【问题描述】:

我很好奇 Mercurial 是否可以做到这一点。我想在项目中有一个子存储库,它总是固定到手动指定的变更集,或者更好的是 - 标记。

基本上我想要实现的是在主仓库中拥有一个核心系统,然后在子仓库中拥有所有模块和组件,但我不希望这些子仓库指向小费,只指向那些的主要版本组件/模块(因此标签)。

【问题讨论】:

    标签: mercurial mercurial-subrepos


    【解决方案1】:

    子存储库完全按照您的意愿工作。

    Mercurial 永远不会自动将子存储库更新到提示。它始终停留在您选择的变更集上。来自documentation

    Subrepos 不会自动跟踪其最新的变更集 来源。相反,它们会更新为对应的变更集 在顶级变更集中签出变更集。这是这样的 开发人员总能得到一组一致的兼容代码和 更新时的库。

    要达到你想要的,你可以按照以下步骤:

    1. echo subrepo = https://example.com/subrepo/repo/path > .hgsub
    2. hg add .hgsub
    3. hg clone https://example.com/subrepo/repo/path subrepo
    4. hg -R subrepo update mytag
    5. hg commit

    这将创建一个包含指定存储库内容的子存储库目录,只要您不将手动更新为其他内容,该目录就会保留在mytag 标签上!

    克隆您的存储库的每个人都将拥有与您相同的变更集上的子存储库(即mytag)。

    仅供参考,子存储库更新到的变更集存储在主存储库根目录的 .hgsubstate 文件中。

    【讨论】:

      猜你喜欢
      • 2011-04-15
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      相关资源
      最近更新 更多