merge: move reverse-merge logic out of filemerge (
issue2342)
--- a/mercurial/filemerge.py Fri Aug 20 17:16:37 2010 -0500
+++ b/mercurial/filemerge.py Sat Aug 21 10:41:29 2010 -0500
@@ -138,9 +138,6 @@
if not fco.cmp(fcd.data()): # files identical?
return None
- if fca == fco: # backwards, use working dir parent as ancestor
- fca = fcd.parents()[0]
-
ui = repo.ui
fd = fcd.path()
binary = isbin(fcd) or isbin(fco) or isbin(fca)
--- a/mercurial/merge.py Fri Aug 20 17:16:37 2010 -0500
+++ b/mercurial/merge.py Sat Aug 21 10:41:29 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)