--- 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