comparison mercurial/revset.py @ 20709:71df845d86cf

revsets: backout d04aac468bf4 due to performance regressions
author Matt Mackall <mpm@selenic.com>
date Thu, 13 Mar 2014 14:34:32 -0500
parents 17c89e5a5627
children b95490cf8abd
comparison
equal deleted inserted replaced
20708:17c89e5a5627 20709:71df845d86cf
538 return True 538 return True
539 539
540 return subset.filter(matches) 540 return subset.filter(matches)
541 541
542 def _children(repo, narrow, parentset): 542 def _children(repo, narrow, parentset):
543 cs = set()
543 if not parentset: 544 if not parentset:
544 return baseset([]) 545 return baseset(cs)
545 pr = repo.changelog.parentrevs 546 pr = repo.changelog.parentrevs
546 minrev = min(parentset) 547 minrev = min(parentset)
547 548 for r in narrow:
548 def matches(x): 549 if r <= minrev:
549 if x <= minrev: 550 continue
550 return False 551 for p in pr(r):
551 for p in pr(x):
552 if p in parentset: 552 if p in parentset:
553 return True 553 cs.add(r)
554 554 return baseset(cs)
555 return narrow.filter(matches)
556 555
557 def children(repo, subset, x): 556 def children(repo, subset, x):
558 """``children(set)`` 557 """``children(set)``
559 Child changesets of changesets in set. 558 Child changesets of changesets in set.
560 """ 559 """