revset: fix O(n**2) behaviour of bisect() (
issue3381)
--- 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