--- a/mercurial/context.py Mon Oct 27 17:52:33 2014 +0100
+++ b/mercurial/context.py Fri Oct 24 14:24:28 2014 -0700
@@ -121,10 +121,11 @@
modified, added, clean = [], [], []
deleted, unknown, ignored = s[3], s[4], s[5]
+ deletedset = set(deleted)
withflags = mf1.withflags() | mf2.withflags()
for fn, mf2node in mf2.iteritems():
if fn in mf1:
- if (fn not in deleted and
+ if (fn not in deletedset and
((fn in withflags and mf1.flags(fn) != mf2.flags(fn)) or
(mf1[fn] != mf2node and
(mf2node or self[fn].cmp(other[fn]))))):
@@ -132,7 +133,7 @@
elif listclean:
clean.append(fn)
del mf1[fn]
- elif fn not in deleted:
+ elif fn not in deletedset:
added.append(fn)
removed = mf1.keys()
if removed: