mercurial/revset.py
changeset 30699 5bda147c3139
parent 30392 155d7ea98085
child 30700 323f0c4b43f4
equal deleted inserted replaced
30698:c3db3bb4699f 30699:5bda147c3139
   721     if not parentset:
   721     if not parentset:
   722         return baseset()
   722         return baseset()
   723     cs = set()
   723     cs = set()
   724     pr = repo.changelog.parentrevs
   724     pr = repo.changelog.parentrevs
   725     minrev = parentset.min()
   725     minrev = parentset.min()
       
   726     nullrev = node.nullrev
   726     for r in subset:
   727     for r in subset:
   727         if r <= minrev:
   728         if r <= minrev:
   728             continue
   729             continue
   729         for p in pr(r):
   730         p1, p2 = pr(r)
   730             if p in parentset:
   731         if p1 in parentset:
   731                 cs.add(r)
   732             cs.add(r)
       
   733         if p2 != nullrev and p2 in parentset:
       
   734             cs.add(r)
   732     return baseset(cs)
   735     return baseset(cs)
   733 
   736 
   734 @predicate('children(set)', safe=True)
   737 @predicate('children(set)', safe=True)
   735 def children(repo, subset, x):
   738 def children(repo, subset, x):
   736     """Child changesets of changesets in set.
   739     """Child changesets of changesets in set.