如何使用Mercurial中的重叠存储库

时间:2010-05-20 19:36:12

标签: mercurial

我经常希望拥有一个源的主存储库,由几个“类似”项目共享。每个子项目包含大多数相同的文件,但是是特定的可配置实例。这意味着每个实例通常需要有一堆文件和目录。

在CVS中,我曾经创建了主存储库和辅助存储库,然后使用模块文件将两者绑定在一起以获得特定名称。在SVN中,我使用svn:externals将辅助目录绑定到主目录。

Mercurial有什么用?

1 个答案:

答案 0 :(得分:4)

这取决于特定文件的性质,这些文件需要有所不同 如果您可以将它们转换为模板文件,那么您可以:

  • 将主要仓库共享为SubRepo(如文档中所述:SubRepos是“与使用svn:externals属性标记的Subversion目录最接近的内容”)
  • 有“类似”项目,将:
    • 将主要回购包含为子代理(referencing a specific revision
    • 运行一个版本化脚本,该脚本将获取这些模板文件,并根据每个环境构建具有正确值的实际文件。

通过这种方式,您可以将模板(在主仓库中)和值(每个类似项目根据其特定环境了解)分开。
话虽如此,并非每个文件变体都可以作为“要实例化的模板”进行处理。