mercurial/revset.py
changeset 29406 c2193e59ef9f
parent 29389 98e8313dcd9e
child 29407 20fabe814f89
equal deleted inserted replaced
29405:fbe380dc227a 29406:c2193e59ef9f
   690                 if m(f):
   690                 if m(f):
   691                     return True
   691                     return True
   692 
   692 
   693     return subset.filter(matches, condrepr=('<status[%r] %r>', field, pat))
   693     return subset.filter(matches, condrepr=('<status[%r] %r>', field, pat))
   694 
   694 
   695 def _children(repo, narrow, parentset):
   695 def _children(repo, subset, parentset):
   696     if not parentset:
   696     if not parentset:
   697         return baseset()
   697         return baseset()
   698     cs = set()
   698     cs = set()
   699     pr = repo.changelog.parentrevs
   699     pr = repo.changelog.parentrevs
   700     minrev = parentset.min()
   700     minrev = parentset.min()
   701     for r in narrow:
   701     for r in subset:
   702         if r <= minrev:
   702         if r <= minrev:
   703             continue
   703             continue
   704         for p in pr(r):
   704         for p in pr(r):
   705             if p in parentset:
   705             if p in parentset:
   706                 cs.add(r)
   706                 cs.add(r)
   707     # XXX using a set to feed the baseset is wrong. Sets are not ordered.
       
   708     # This does not break because of other fullreposet misbehavior.
       
   709     return baseset(cs)
   707     return baseset(cs)
   710 
   708 
   711 @predicate('children(set)', safe=True)
   709 @predicate('children(set)', safe=True)
   712 def children(repo, subset, x):
   710 def children(repo, subset, x):
   713     """Child changesets of changesets in set.
   711     """Child changesets of changesets in set.
  1147     getargs(x, 0, 0, _("head takes no arguments"))
  1145     getargs(x, 0, 0, _("head takes no arguments"))
  1148     hs = set()
  1146     hs = set()
  1149     cl = repo.changelog
  1147     cl = repo.changelog
  1150     for b, ls in repo.branchmap().iteritems():
  1148     for b, ls in repo.branchmap().iteritems():
  1151         hs.update(cl.rev(h) for h in ls)
  1149         hs.update(cl.rev(h) for h in ls)
  1152     # XXX using a set to feed the baseset is wrong. Sets are not ordered.
       
  1153     # This does not break because of other fullreposet misbehavior.
       
  1154     # XXX We should combine with subset first: 'subset & baseset(...)'. This is
  1150     # XXX We should combine with subset first: 'subset & baseset(...)'. This is
  1155     # necessary to ensure we preserve the order in subset.
  1151     # necessary to ensure we preserve the order in subset.
  1156     return baseset(hs) & subset
  1152     return baseset(hs) & subset
  1157 
  1153 
  1158 @predicate('heads(set)', safe=True)
  1154 @predicate('heads(set)', safe=True)