代码之家  ›  专栏  ›  技术社区  ›  CoreyD

如何将更改传播到Mercurial中的所有子回购?

  •  2
  • CoreyD  · 技术社区  · 15 年前

    我最近从Subversion切换到Mercurial来进行源代码控制,这样就把一个存储库分成了几个。我使用子回购来管理存储库之间的依赖关系。问题是pull不知道superpo,所以我必须进入每个子repo并拉取更改以更新存储库。有更好的办法吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Community CDub    8 年前

    拉不到superpo

    hg pull 如果与 -u ( --update 选择权。

    这个 hg update 应该,当它 comes to subrepos ,请将它们考虑在内:

    每当新的Mercurial版本遇到这种情况时 .hgsubstate 文件更新工作目录时,他们将尝试提取指定的子回购并将其更新到适当的状态。

    子回购也可能包含自己的子回购,Mercurial将在必要时递归。


    这个 OP CoreyD 补充:

    这对我不起作用。
    我创建了两个回购协议 /repo /sub 我把Sub克隆到repo中( /repo/sub )
    然后我创建一个 .hgsub 文件在 回购协议 这样的台词 sub = ../sub 并承诺。
    当我改变 /子 然后在中进行更新 /repo /repo/sub 是不变的。
    我做错什么了吗?

    看起来是对的:
    子回购或子模块(对于git)都是关于引用 精确配置 (changeset ref for hg,或commit ref for git,如下所述 SO question )

    当你改变什么的时候 外部 属于 回购协议 ,你不会改变 HgPb态 文件 在内部 回购协议 记录精确配置(变更集引用)。
    因此根本没有变化。

    你宁愿做你的 /子 直接改变 /回购/子 ,提交它们,然后提交 回购协议 .
    然后 一个克隆 回购协议 会有新的配置。

    推荐文章