mercurial/merge.py
changeset 20642 0dc7a50345c2
parent 20640 52929dcdd512
child 20651 c1a52dd56eb4
--- a/mercurial/merge.py	Tue Feb 25 20:29:14 2014 +0100
+++ b/mercurial/merge.py	Tue Feb 25 20:29:46 2014 +0100
@@ -388,9 +388,14 @@
         if partial and not partial(f):
             continue
         if n1 and n2:
-            fla = ma.flags(f)
+            fa = f
+            a = ma.get(f, nullid)
+            if a == nullid:
+                fa = copy.get(f, f)
+                # Note: f as default is wrong - we can't really make a 3-way
+                # merge without an ancestor file.
+            fla = ma.flags(fa)
             nol = 'l' not in fl1 + fl2 + fla
-            a = ma.get(f, nullid)
             if n2 == a and fl2 == fla:
                 pass # remote unchanged - keep local
             elif n1 == a and fl1 == fla: # local unchanged - use remote