obsolete: stop doing membership test on list stable
authorPierre-Yves David <pierre-yves.david@ens-lyon.org>
Sat, 16 Nov 2013 20:34:58 -0500
branchstable
changeset 20028 28445179df90
parent 20011 cb466830826a
child 20029 2e22f30e8437
child 20056 cbcd85fa75c0
obsolete: stop doing membership test on list According to the Surgeon General, computer should not use list for membership testing because of the risk of being slow.
mercurial/obsolete.py
--- a/mercurial/obsolete.py	Sat Nov 16 12:34:05 2013 -0500
+++ b/mercurial/obsolete.py	Sat Nov 16 20:34:58 2013 -0500
@@ -267,7 +267,8 @@
         Return the number of new marker."""
         if not _enabled:
             raise util.Abort('obsolete feature is not enabled on this repo')
-        new = [m for m in markers if m not in self._all]
+        known = set(self._all)
+        new = [m for m in markers if m not in known]
         if new:
             f = self.sopener('obsstore', 'ab')
             try: