合并两个不同的目录树 - Mercurial

时间:2017-05-09 07:27:54

标签: mercurial

我在这里提出一个理论问题,因为我正在研究两个Mercurial存储库的合并概念验证。目前,我有两个完全不同的树结构的存储库。我们称之为Repo A和Repo B.

目录如下所示:

Repo A                                Repo B 
|                                     |
Dir A -- Dir A1 -- File A             Dir A --- Dir A1 -- Dir A2 -- File A2
|                                           |   File A    File A1   
Dir B -- Dir B1 -- File B1                  |
         File B                             |-- Dir B -- File B

因此,在Repo A中,dir B与dir A处于同一级别,但在Repo B中,dir B存在于dir A内部。它们都是活动存储库,所以它们有自己的代码更改历史但是Repo B对dir B进行了最新更改。

我想要实现的是将Repo B合并到Repo A树结构上并保持变换集历史记录和repo A和repo B的标记,用于dir A和dir B而不会丢失任何东西。

我读过一篇文章http://hgtip.com/tips/advanced/2009-11-17-combining-repositories/,但我不确定它是否适用于我想要做的事情。如果我之前有类似的问题,请帮助指出链接。或者任何有用的文章也会有所帮助。

否则,所有人的指导都会很棒。 XDD

感谢。

1 个答案:

答案 0 :(得分:1)

事实上,你基本上已经将自己的答案的一个版本联系起来了 - 这正是你想要做的:

  • 准备一个repo(或两者),使内部目录结构相互匹配,这样就不会发生需要保持分离的东西的命名冲突,而那些相同的东西是相同的名称
  • 将一个存储库拉入另一个存储库。您将收到警告,您正在从一个不相关的存储库中提取。那很好,这就是你想要做的。最终会得到一个包含两个独立分支的存储库。
  • 合并两个分支并以您需要的方式解决冲突

你在one example repo中看到了一个这样的事情:我们将两个密切相关的工具合并到一个代码库中。