# HG changeset patch # User Pierre-Yves David # Date 2014-09-17 17:59:52 # Node ID a428db9ab61ddd870983eda1e0bf4d328c7b32c0 # Parent bbf4f3dfd700256f186315d2996b74fe1ccae370 revset: use `subset &` in bare `p1()` This takes advantage of the `fullreposet` smartness and yields a nice speedup. revset #0: p1() 0) wall 0.003256 comb 0.010000 user 0.010000 sys 0.000000 (best of 527) 1) wall 0.000066 comb 0.000000 user 0.000000 sys 0.000000 (best of 23224) diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -1198,7 +1198,9 @@ def p1(repo, subset, x): """ if x is None: p = repo[x].p1().rev() - return subset.filter(lambda r: r == p) + if p >= 0: + return subset & baseset([p]) + return baseset([]) ps = set() cl = repo.changelog