mercurial/merge.py
branchstable
changeset 42915 a4ca0610c754
parent 42522 d29db0a0c4eb
child 42918 f059d6ffcdf0
child 42953 085295f82845
--- a/mercurial/merge.py	Sat Sep 07 14:51:18 2019 +0200
+++ b/mercurial/merge.py	Mon Sep 09 17:32:21 2019 +0200
@@ -2249,17 +2249,23 @@
                    mergeancestor=mergeancestor, labels=labels)
 
 
+    potherp1 = False
     if keepconflictparent and stats.unresolvedcount:
         pother = ctx.node()
     else:
         pother = nullid
         parents = ctx.parents()
         if keepparent and len(parents) == 2 and pctx in parents:
+            if pctx == parents[0]:
+                potherp1 = True
             parents.remove(pctx)
             pother = parents[0].node()
 
     with repo.dirstate.parentchange():
-        repo.setparents(repo['.'].node(), pother)
+        if potherp1:
+            repo.setparents(pother, repo['.'].node())
+        else:
+            repo.setparents(repo['.'].node(), pother)
         repo.dirstate.write(repo.currenttransaction())
         # fix up dirstate for copies and renames
         copies.duplicatecopies(repo, repo[None], ctx.rev(), pctx.rev())