mercurial/revset.py
changeset 20709 71df845d86cf
parent 20708 17c89e5a5627
child 20711 b95490cf8abd
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     """