"ambiguous merge - picked m action" - 这是什么意思?



我尝试合并:

hg me -r <some-revision>

,得到:

<some-file>: ambiguous merge - picked m action

这是什么意思?

此消息来自于处理"困难"合并的合并代码,在提交图中没有"最佳"最低共同祖先(LCA)提交。(相反,至少有两个lca——或者在本例中恰好是两个,因为要获得两个以上的lca很棘手,而且我认为Mercurial做不到。)如果运行时启用了详细信息或调试消息,您将看到一些关于"出价合并"过程的消息。竞价合并的描述(在我看来不是很好)在https://www.mercurial-scm.org/wiki/BidMerge.

您看到的消息表明出价合并算法在选择"最佳祖先"时失败,并且Mercurial退回到其"(看似)随机选择祖先"方法。

缺乏"最佳LCA"源于"交叉合并",即你将分支a合并到B中,将分支B合并到a中。如果没有这样的合并,总是存在一个最佳LCA,如果存在LCA的话。这并不意味着你必须避免这样的合并,但它确实意味着你应该意识到,如果你,你可能会遇到模糊的合并基础问题。

最新更新