5

我在 Mercurial 中打开了三向合并窗口:

local
base
other
  • 我在分支 A: hg update A
  • 我想与分支 B 合并:hg merge B

我想知道什么是local,baseother.

我读了这篇Mercurial/Meld 中的 3 路合并是如何工作的?但无法得到它。

现在我想知道local,我需要保存base哪个文件?other我需要使所有文件都相同吗?这会更改其他分支中的文件还是仅保存在我当前的分支 A 中,而不会触及其他分支?

4

1 回答 1

3

在您的示例中:

  • local是分支 A 上的最后一个变更集。
  • other是分支 B 上的最后一个变更集。
  • base是最新的变更集,它是两个分支的祖先。

如果您只是执行上面列出的命令 ( hg update A, hg merge B),那么您将无法选择要使用的文件,因为 Mercurial 会在可能的情况下为您做出选择。

您需要做出决定的唯一时间是两个分支中的文件是否以 Mercurial 无法自动解析的方式发生更改。在这种情况下,您将看到您选择的合并程序来解决冲突。您必须查看每个分支中所做的更改并手动决定如何组合它们。如果其他开发人员进行了其中一项更改,那么您可能需要请他们帮助合并。

如果你这样做了hg update Ahg merge B那么唯一会受到影响的分支是 A。

于 2013-09-09T07:47:01.197 回答