diff -r 2793ecb1522d -r b697fa74b475 mercurial/merge.py --- a/mercurial/merge.py Tue Oct 14 17:09:16 2014 -0700 +++ b/mercurial/merge.py Tue Oct 14 22:48:44 2014 -0700 @@ -424,22 +424,7 @@ # Compare manifests diff = m1.diff(m2) - for f, (n12, fl12) in diff.iteritems(): - if n12: - n1, n2 = n12 - else: # file contents didn't change, but flags did - 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 - fl1 = fl2 = m1.flags(f) - + for f, ((n1, n2), (fl1, fl2)) in diff.iteritems(): if partial and not partial(f): continue if n1 and n2: