使用Mercurial以三向合并方式保存哪个文件?

时间:2013-09-09 01:14:46

标签: version-control mercurial merge

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

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

我想知道什么是localbaseother

我读了这个How does the 3 way merge in Mercurial/Meld work?但是无法得到它。

现在我想知道我需要保存的localbaseother中的哪个文件?我需要使所有文件都一样吗?这会改变其他分支中的文件,还是仅保存在我当前的分支A中,而其他分支不会被触及?

1 个答案:

答案 0 :(得分:3)

在你的例子中:

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

如果您只是执行上面列出的命令(hg update Ahg merge B),那么您将无法选择要采用哪些文件,因为Mercurial会为您做出选择。

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

如果您执行hg update Ahg merge B,则唯一受影响的分支是A.