mercurial/merge.py
changeset 18895 ed676ed67a5c
parent 18876 f63035b9b38a
child 18985 a59e575c6ff8
--- a/mercurial/merge.py	Wed Apr 10 12:31:07 2013 -0700
+++ b/mercurial/merge.py	Wed Apr 10 12:34:42 2013 -0700
@@ -246,7 +246,13 @@
         if n12:
             n1, n2 = n12
         else: # file contents didn't change, but flags did
-            n1 = n2 = m1[f]
+            n1 = n2 = m1.get(f, None)
+            if n1 is None:
+                # Since n1 == n2, the file isn't present in m2 either. This
+                # means that the file was removed or deleted locally and
+                # removed remotely, but that residual entries remain in flags.
+                # This can happen in manifests generated by workingctx.
+                continue
         if fl12:
             fl1, fl2 = fl12
         else: # flags didn't change, file contents did