2

我最近从 Subversion 切换到 Mercurial 以进行源代码控制,并且这样做将一个存储库拆分为多个存储库。我使用 subrepos 来管理存储库之间的依赖关系。问题是 pull 不是 suprepo 感知的,所以我必须进入每个 subrepo 并拉取更改才能更新存储库。有一个更好的方法吗?

4

1 回答 1

0

拉动是不知道的

hg pull应该是 subrepo 感知的,只要它与-u( --update) 选项一起使用。

涉及到 subreposhg update时,应该将它们考虑在内:

每当更新的 Mercurial 版本.hgsubstate在更新您的工作目录时遇到此文件时,它们将尝试提取指定的子存储库并将它们更新到适当的状态。

Subrepos 也可能包含他们自己的 subrepos,Mercurial 将根据需要递归。


OP CoreyD补充说:

这对我不起作用。
我创建了两个 repos/repo并将/subsub 克隆到 repo ( /repo/sub) 中。然后我用这样的一行
创建一个.hgsub文件并提交它。 当我进行更改然后进行更新时,是不变的。 难道我做错了什么?/reposub = ../sub
/sub/repo /repo/sub

看起来是对的:
SubRepos 或子模块(对于 Git)都是关于引用精确配置(hg 的变更集引用,或 Git 的提交引用,如这个SO 问题中所述)

当您更改之外的任何内容时/repo,您不会记录确切配置(变更集参考)中更改.hgsubstate文件。 因此根本没有变化。 /repo

您可以/sub直接在 中进行更改/repo/sub,提交它们,然后提交/repo
然后, 的克隆/repo将具有新配置。

于 2010-04-16T17:16:25.260 回答