mercurial/merge.py
changeset 12010 ce818cf215dc
parent 11817 d12fe809e1ee
parent 12008 fad5ed0ff997
child 12032 ad787252fed6
--- a/mercurial/merge.py	Fri Aug 20 21:28:14 2010 -0500
+++ b/mercurial/merge.py	Sat Aug 21 10:48:49 2010 -0500
@@ -270,7 +270,12 @@
             repo.ui.debug("preserving %s for resolve of %s\n" % (f, fd))
             fcl = wctx[f]
             fco = mctx[f2]
-            fca = fcl.ancestor(fco, actx) or repo.filectx(f, fileid=nullrev)
+            if mctx == actx: # backwards, use working dir parent as ancestor
+                fca = fcl.parents()[0]
+            else:
+                fca = fcl.ancestor(fco, actx)
+            if not fca:
+                fca = repo.filectx(f, fileid=nullrev)
             ms.add(fcl, fco, fca, fd, flags)
             if f != fd and move:
                 moves.append(f)