4

类似,但 hg 文档不鼓励回答:我可以使用 mercurial 模拟 svn:externals 吗?

在使用 hg 之前,我使用的是 Subversion。看起来 Subversion 中的外部功能非常强大:我可以拥有指向另一个 repo 的特定版本的子 repo。但是 Hg 中的Subrepository的文档说这是“最后手段的功能”。哇,太不祥了。另外,我在文档中没有看到任何关于将该子存储库粘贴到特定版本的内容。

不再维护 Deps 扩展。

不鼓励在网站上扩展森林。

因此,如果我希望将版本 XYZAB 的 repo 嵌套在我的 Hg repo 中,那么现在最好的替代方案是什么,而不是 Last Resort 的功能?汞在这个功能上有点糟糕吗?

Guestrepo 值得一看,但在这一点上非常新:https ://bitbucket.org/selinc/guestrepo

4

1 回答 1

3

但是 Hg 中的 Subrepository 的文档说这是“最后手段的功能”。哇,太不祥了。

这意味着您应该仔细检查您是否真的需要 subrepos。有许多非常大的项目使用 Mercurial 而不使用子存储库。他们将代码作为松散耦合的存储库的集合来管理——子存储库的主要问题是它们创建了非常紧密的耦合,并且在软件设计中通常会避免紧密耦合的组件,因为它们会限制您的灵活性。

然而,对子存储库的支持不会消失,事实上,随着人们向我们展示良好的用例,它会随着时间的推移而逐渐改善。

另外,我在文档中没有看到任何关于将该子存储库粘贴到特定版本的内容。

奇怪,因为子存储库都是关于检查特定版本的。也就是说,您只能签出您提交的完全相同的版本。.hgsubstate该版本在您提交时写入,hg update并将在结帐时查阅该文件。

请参阅Mercurial Kick Start 指南以及hg help subrepos有关如何.hgsubstate处理文件的信息。

于 2012-08-30T07:38:00.110 回答