# HG changeset patch # User Pierre-Yves David # Date 2014-09-30 20:03:54 # Node ID 62d19ce9d7b6ebd713f5cc9ce281d59d32781423 # Parent 2920a96f5839e3ed530c4396f75007b23e106ac4 revset-_ancestor: use & instead of filter The & operation is more likely optimised. ::10 before) wall 0.028189 comb 0.030000 user 0.030000 sys 0.000000 (best of 100) after) wall 0.001050 comb 0.000000 user 0.000000 sys 0.000000 (best of 2326) ::tip before) wall 0.081132 comb 0.080000 user 0.080000 sys 0.000000 (best of 100) after) wall 0.055418 comb 0.050000 user 0.050000 sys 0.000000 (best of 100) diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -347,7 +347,7 @@ def _ancestors(repo, subset, x, followfi if not heads: return baseset() s = _revancestors(repo, heads, followfirst) - return subset.filter(s.__contains__) + return subset & s def ancestors(repo, subset, x): """``ancestors(set)``