# HG changeset patch
# User Pierre-Yves David <pierre-yves.david@fb.com>
# Date 2014-09-17 17:57:57
# Node ID 0cf46b8298feff1531b788bfbcdc323372cd604d
# Parent  22ba2c0825daa168823fe356e4afc30389a6a384

revset: use `subset &` in `bisect`

This takes advantage of the `fullreposet` smartness.

revset #0: bisect(range)
0) wall 0.014007 comb 0.010000 user 0.010000 sys 0.000000 (best of 115)
1) wall 0.005556 comb 0.010000 user 0.010000 sys 0.000000 (best of 235)

diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -426,7 +426,7 @@ def bisect(repo, subset, x):
     # i18n: "bisect" is a keyword
     status = getstring(x, _("bisect requires a string")).lower()
     state = set(hbisect.get(repo, status))
-    return subset.filter(state.__contains__)
+    return subset & state
 
 # Backward-compatibility
 # - no help entry so that we do not advertise it any more