Version control 如何使用Mercurial跨多个存储库共享代码?

Version control 如何使用Mercurial跨多个存储库共享代码?,version-control,mercurial,code-reuse,Version Control,Mercurial,Code Reuse,随着时间的推移,我开发了各种实用程序函数、类和控件,可以在多个项目中重用。对于这些项目中的每一个,我都有一个Mercurial存储库,并复制可重用的项目。显然,这是不好的,因为如果我修复了其中一个可重用组件中的错误,我必须在所有存储库中手动复制代码,我可能会在这个过程中出错 你如何处理这种情况?如何与Mercurial在多个存储库之间共享代码,这样,如果我在一个存储库中进行更新,就可以轻松地与其他存储库集成。查看子存储库: 它们不会帮助您保持其他副本的最新状态(您必须手动执行),但它们会使这变得

随着时间的推移,我开发了各种实用程序函数、类和控件,可以在多个项目中重用。对于这些项目中的每一个,我都有一个Mercurial存储库,并复制可重用的项目。显然,这是不好的,因为如果我修复了其中一个可重用组件中的错误,我必须在所有存储库中手动复制代码,我可能会在这个过程中出错


你如何处理这种情况?如何与Mercurial在多个存储库之间共享代码,这样,如果我在一个存储库中进行更新,就可以轻松地与其他存储库集成。

查看子存储库:

它们不会帮助您保持其他副本的最新状态(您必须手动执行),但它们会使这变得很容易(您可以在子回购中使用
hg pull;hg update
,然后提交父回购)


另一种选择(我在另一个项目上使用)是指定一个布局,然后简单地假设“实用程序”存储库相对于每个“真实”存储库存储在

中。我将所有实用程序功能放在一个包中,如果我为特定项目编写了新功能,当我觉得它符合“稳定”条件时,我会将其迁移到实用程序包中。+1但不要忘记。。这被认为是最后的手段。:)@李维斯:完全离题了,但我真的很讨厌他们在功能上贴的那些告示。特别是次级回购和大型文件并不是“万不得已的特征”。它们是特定类型问题所必需的。是的,它们不应该一直使用,只有在必要时才使用,但它们不是最后的手段。@PaulS完全同意你的观点。。我只是没想到会在官方文件中看到。。觉得很有趣……)它们是有道理的,但一旦你知道你在做什么,次级回购就相当酷了。。。