我在Mercurial中打开了三向合并窗口:
local
base
other
hg update A
。hg merge B
我想知道什么是local
,base
和other
。
我读了这个How does the 3 way merge in Mercurial/Meld work?但是无法得到它。
现在我想知道我需要保存的local
,base
,other
中的哪个文件?我需要使所有文件都一样吗?这会改变其他分支中的文件,还是仅保存在我当前的分支A中,而其他分支不会被触及?
答案 0 :(得分:3)
在你的例子中:
local
是分支A上的最后一个变更集。other
是分支B上的最后一个变更集。base
是最新的变更集,是两个分支的祖先。如果您只是执行上面列出的命令(hg update A
,hg merge B
),那么您将无法选择要采用哪些文件,因为Mercurial会为您做出选择。
您需要做出决定的唯一时间是,两个分支中的文件是否以Mercurial无法自动解析的方式更改。在这种情况下,您将看到您选择的合并程序来解决冲突。您必须查看每个分支中所做的更改,并手动确定它们需要如何组合。如果其他开发人员进行了其中一项更改,那么您可能需要让他们帮助进行合并。
如果您执行hg update A
,hg merge B
,则唯一受影响的分支是A.