mercurial/revset.py
changeset 25549 f93ff3ab8d14
parent 25548 9584bcf27637
child 25550 3e9049876ace
equal deleted inserted replaced
25548:9584bcf27637 25549:f93ff3ab8d14
    56     else:
    56     else:
    57         cut = None
    57         cut = None
    58 
    58 
    59     def iterate():
    59     def iterate():
    60         cl = repo.changelog
    60         cl = repo.changelog
       
    61         # XXX this should be 'parentset.min()' assuming 'parentset' is a
       
    62         # smartset (and if it is not, it should.)
    61         first = min(revs)
    63         first = min(revs)
    62         nullrev = node.nullrev
    64         nullrev = node.nullrev
    63         if first == nullrev:
    65         if first == nullrev:
    64             # Are there nodes with a null first parent and a non-null
    66             # Are there nodes with a null first parent and a non-null
    65             # second one? Maybe. Do we care? Probably not.
    67             # second one? Maybe. Do we care? Probably not.
    83         return baseset()
    85         return baseset()
    84     parentrevs = repo.changelog.parentrevs
    86     parentrevs = repo.changelog.parentrevs
    85     visit = list(heads)
    87     visit = list(heads)
    86     reachable = set()
    88     reachable = set()
    87     seen = {}
    89     seen = {}
       
    90     # XXX this should be 'parentset.min()' assuming 'parentset' is a smartset
       
    91     # (and if it is not, it should.)
    88     minroot = min(roots)
    92     minroot = min(roots)
    89     roots = set(roots)
    93     roots = set(roots)
    90     # open-code the post-order traversal due to the tiny size of
    94     # open-code the post-order traversal due to the tiny size of
    91     # sys.getrecursionlimit()
    95     # sys.getrecursionlimit()
    92     while visit:
    96     while visit:
   612 def _children(repo, narrow, parentset):
   616 def _children(repo, narrow, parentset):
   613     cs = set()
   617     cs = set()
   614     if not parentset:
   618     if not parentset:
   615         return baseset(cs)
   619         return baseset(cs)
   616     pr = repo.changelog.parentrevs
   620     pr = repo.changelog.parentrevs
       
   621     # XXX this should be 'parentset.min()' assuming 'parentset' is a smartset
       
   622     # (and if it is not, it should.)
   617     minrev = min(parentset)
   623     minrev = min(parentset)
   618     for r in narrow:
   624     for r in narrow:
   619         if r <= minrev:
   625         if r <= minrev:
   620             continue
   626             continue
   621         for p in pr(r):
   627         for p in pr(r):
  1215     # i18n: "branchpoint" is a keyword
  1221     # i18n: "branchpoint" is a keyword
  1216     getargs(x, 0, 0, _("branchpoint takes no arguments"))
  1222     getargs(x, 0, 0, _("branchpoint takes no arguments"))
  1217     cl = repo.changelog
  1223     cl = repo.changelog
  1218     if not subset:
  1224     if not subset:
  1219         return baseset()
  1225         return baseset()
       
  1226     # XXX this should be 'parentset.min()' assuming 'parentset' is a smartset
       
  1227     # (and if it is not, it should.)
  1220     baserev = min(subset)
  1228     baserev = min(subset)
  1221     parentscount = [0]*(len(repo) - baserev)
  1229     parentscount = [0]*(len(repo) - baserev)
  1222     for r in cl.revs(start=baserev + 1):
  1230     for r in cl.revs(start=baserev + 1):
  1223         for p in cl.parentrevs(r):
  1231         for p in cl.parentrevs(r):
  1224             if p >= baserev:
  1232             if p >= baserev: