diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -1052,7 +1052,7 @@ def update(repo, node, branchmerge, forc cahs = repo.changelog.commonancestorsheads(p1.node(), p2.node()) pas = [repo[anc] for anc in (sorted(cahs) or [nullid])] else: - pas = [p1.ancestor(p2, warn=True)] + pas = [p1.ancestor(p2, warn=branchmerge)] fp1, fp2, xp1, xp2 = p1.node(), p2.node(), str(p1), str(p2) diff --git a/tests/test-merge-criss-cross.t b/tests/test-merge-criss-cross.t --- a/tests/test-merge-criss-cross.t +++ b/tests/test-merge-criss-cross.t @@ -24,8 +24,6 @@ Criss cross merging $ hg ci -m '5 second change f1' $ hg up -r3 - note: using 0f6b37dbe527 as ancestor of adfe50279922 and cf89f02107e5 - alternatively, use --config merge.preferancestor=40663881a6dd 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo '6 second change' > f2 $ hg ci -m '6 second change f2' @@ -169,8 +167,6 @@ Redo merge with merge.preferancestor="*" The other way around: $ hg up -C -r5 - note: using 0f6b37dbe527 as ancestor of 3b08d01b0ab5 and adfe50279922 - alternatively, use --config merge.preferancestor=40663881a6dd 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg merge -v --debug --config merge.preferancestor="*" note: merging adfe50279922+ and 3b08d01b0ab5 using bids from ancestors 0f6b37dbe527 and 40663881a6dd