diff mercurial/revset.py @ 16467:7f59900e3f8b stable

revset: fix O(n**2) behaviour of bisect() (issue3381)
author Bryan O'Sullivan <bryano@fb.com>
date Wed, 18 Apr 2012 21:27:35 -0700
parents d2a865d4b963
children 592701c8eac6
line wrap: on
line diff
--- a/mercurial/revset.py	Wed Apr 18 14:04:58 2012 +0200
+++ b/mercurial/revset.py	Wed Apr 18 21:27:35 2012 -0700
@@ -291,7 +291,8 @@
     - ``ignored``            : csets ignored due to DAG topology
     """
     status = getstring(x, _("bisect requires a string")).lower()
-    return [r for r in subset if r in hbisect.get(repo, status)]
+    state = set(hbisect.get(repo, status))
+    return [r for r in subset if r in state]
 
 # Backward-compatibility
 # - no help entry so that we do not advertise it any more