Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revset.py @ 22538:a428db9ab61d
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)
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Wed, 17 Sep 2014 10:59:52 -0700 |
parents | bbf4f3dfd700 |
children | 6f434ef54222 |
comparison
equal
deleted
inserted
replaced
22537:bbf4f3dfd700 | 22538:a428db9ab61d |
---|---|
1196 """``p1([set])`` | 1196 """``p1([set])`` |
1197 First parent of changesets in set, or the working directory. | 1197 First parent of changesets in set, or the working directory. |
1198 """ | 1198 """ |
1199 if x is None: | 1199 if x is None: |
1200 p = repo[x].p1().rev() | 1200 p = repo[x].p1().rev() |
1201 return subset.filter(lambda r: r == p) | 1201 if p >= 0: |
1202 return subset & baseset([p]) | |
1203 return baseset([]) | |
1202 | 1204 |
1203 ps = set() | 1205 ps = set() |
1204 cl = repo.changelog | 1206 cl = repo.changelog |
1205 for r in getset(repo, spanset(repo), x): | 1207 for r in getset(repo, spanset(repo), x): |
1206 ps.add(cl.parentrevs(r)[0]) | 1208 ps.add(cl.parentrevs(r)[0]) |