comparison mercurial/revset.py @ 23003:62d19ce9d7b6

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)
author Pierre-Yves David <pierre-yves.david@fb.com>
date Tue, 30 Sep 2014 15:03:54 -0500
parents 88ac1be3f767
children 30b602b2c340
comparison
equal deleted inserted replaced
23002:2920a96f5839 23003:62d19ce9d7b6
345 def _ancestors(repo, subset, x, followfirst=False): 345 def _ancestors(repo, subset, x, followfirst=False):
346 heads = getset(repo, spanset(repo), x) 346 heads = getset(repo, spanset(repo), x)
347 if not heads: 347 if not heads:
348 return baseset() 348 return baseset()
349 s = _revancestors(repo, heads, followfirst) 349 s = _revancestors(repo, heads, followfirst)
350 return subset.filter(s.__contains__) 350 return subset & s
351 351
352 def ancestors(repo, subset, x): 352 def ancestors(repo, subset, x):
353 """``ancestors(set)`` 353 """``ancestors(set)``
354 Changesets that are ancestors of a changeset in set. 354 Changesets that are ancestors of a changeset in set.
355 """ 355 """