我最近从Subversion切换到Mercurial来进行源代码控制,并在这样做的过程中将一个存储库分成了几个存储库。我使用subrepos来管理存储库之间的依赖关系。问题是,pull不是suprepo感知的,所以我必须进入每个子存储库并拉出更改,以便更新存储库。有没有更好的方法来做这件事?
发布于 2010-04-17 01:16:25
拉取不能感知suprepo
如果将hg pull与-u (--update)选项一起使用,则它应该支持子存储库。
在comes to subrepos时,hg update应该将它们考虑在内:
每当较新的Mercurial版本在更新您的工作目录时遇到此
.hgsubstate文件时,它们都会尝试提取指定的子存储并将其更新到适当的状态。
Subrepos也可能包含自己的传票,Mercurial将在必要时递归。
OP CoreyD增加了:
对我不起作用的
。
我创建了两个存储库/repo和/sub,并将sub克隆到存储库(/repo/sub)中。
然后,我在/repo中创建了一个.hgsub文件,其中包含类似sub = ../sub的代码行,并提交它。
当我对/sub进行更改,然后在/repo /repo/sub中进行更新时,它是不变的。
我做错了什么吗?
这看起来是对的:
SubRepos或子模块(对于Git)都是关于引用精确配置( hg的变更集引用,或者Git的提交引用,如本SO question中所述)
当您在/repo之外更改任何内容时,不会更改记录确切配置(变更集引用)的/repo中的.hgsubstate文件。
因此根本没有变化。
您可以直接在/repo/sub中进行/sub更改,然后提交它们,然后再提交/repo。
然后,/repo的克隆将具有新的配置。
https://stackoverflow.com/questions/2654573
复制相似问题