comparison mercurial/revset.py @ 20693:d04aac468bf4

revset: changed _children method to use lazy structures
author Lucas Moscovicz <lmoscovicz@fb.com>
date Tue, 11 Feb 2014 14:03:43 -0800
parents 7af341082b76
children 621c94378d0d
comparison
equal deleted inserted replaced
20692:7af341082b76 20693:d04aac468bf4
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()
544 if not parentset: 543 if not parentset:
545 return baseset(cs) 544 return baseset([])
546 pr = repo.changelog.parentrevs 545 pr = repo.changelog.parentrevs
547 minrev = min(parentset) 546 minrev = min(parentset)
548 for r in narrow: 547
549 if r <= minrev: 548 def matches(x):
550 continue 549 if x <= minrev:
551 for p in pr(r): 550 return False
551 for p in pr(x):
552 if p in parentset: 552 if p in parentset:
553 cs.add(r) 553 return True
554 return baseset(cs) 554
555 return narrow.filter(matches)
555 556
556 def children(repo, subset, x): 557 def children(repo, subset, x):
557 """``children(set)`` 558 """``children(set)``
558 Child changesets of changesets in set. 559 Child changesets of changesets in set.
559 """ 560 """