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

Merging two different directory trees - 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 中,目录 B 与目录 A 存在于同一级别,但在 Repo B 中,目录 B 存在于目录 A 内部。它们都是活动存储库,因此它们具有自己的代码更改历史记录但是 Repo B 有目录 B 的最新更改。

我想要实现的是将 Repo B 合并到 Repo A 树结构中,并在不丢失任何内容的情况下维护 dir A 和 dir B 的 repo A 和 repo B 的变更集历史记录和标签。

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

要不然大家多多指导就好了。 XDD

谢谢。

事实上,您基本上已经自己链接了一个版本的答案 - 这正是您想要做的:

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

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