人们如何管理存储在多个(Mercurial)存储库中的公共库文件的更改?

mck*_*oss 3 version-control merge mercurial

这可能不是Mercurial特有的问题,但那是我最近一直在使用的SCM.

我从事多个项目,并倾向于从以前的项目中复制库或实用程序的源代码,以便开始一个新项目.当我想将我在最新项目中所做的所有更改合并到这些共享库文件的"主"副本中时,问题就出现了.

由于存储在不相交库中的文件都会有不同的版本历史,水银不能,如果我只是将文件复制回主回购(或两个甚至之间独立项目)进行智能合并.

我正在寻找一个简单的方法来保存改变历史,所以我可以用最少的外部记录保存的(这是我使用SVN少作为合并需要记住,当个拷贝的原因之一合并库文件回主跨越分支机构).

也许我需要对我的存储库进行一些更多的预先组织,以便为将来的合并做准备回到一个共同的主人.

dla*_*tte 5

三种解决方案,选择你喜欢的:

  1. 将所有项目放入一个存储库.
  2. 为每个项目为共享代码和不同存储库创建单独的存储库.
  3. 一个存储库与子存储库:https://www.mercurial-scm.org/wiki/subrepos ,将所有公共代码保存在一个子项目和每个项目的不同子库中.

在没有共同祖先的存储库之间复制实际文件将永远不会是最佳的,因为不保留历史记录.