changeset 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 c53a49c345e1
children 2fb521d75dc2
files mercurial/revset.py
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
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