mercurial/revset.py
changeset 26053 b68c9d232db6
parent 26006 1ffd97cbf9a2
child 26060 4ee2af2194d4
equal deleted inserted replaced
26052:b970418bbafe 26053:b68c9d232db6
    92 
    92 
    93     If includepath is True, return (<roots>::<heads>)."""
    93     If includepath is True, return (<roots>::<heads>)."""
    94     if not roots:
    94     if not roots:
    95         return baseset()
    95         return baseset()
    96     parentrevs = repo.changelog.parentrevs
    96     parentrevs = repo.changelog.parentrevs
       
    97     roots = set(roots)
    97     visit = list(heads)
    98     visit = list(heads)
    98     reachable = set()
    99     reachable = set()
    99     seen = {}
   100     seen = {}
   100     # prefetch all the things! (because python is slow)
   101     # prefetch all the things! (because python is slow)
   101     reached = reachable.add
   102     reached = reachable.add
   131     if not roots:
   132     if not roots:
   132         return baseset()
   133         return baseset()
   133     # XXX this should be 'parentset.min()' assuming 'parentset' is a smartset
   134     # XXX this should be 'parentset.min()' assuming 'parentset' is a smartset
   134     # (and if it is not, it should.)
   135     # (and if it is not, it should.)
   135     minroot = min(roots)
   136     minroot = min(roots)
   136     roots = set(roots)
   137     roots = list(roots)
   137     heads = list(heads)
   138     heads = list(heads)
   138     try:
   139     try:
   139         return repo.changelog.reachableroots(minroot, heads, roots, includepath)
   140         return repo.changelog.reachableroots(minroot, heads, roots, includepath)
   140     except AttributeError:
   141     except AttributeError:
   141         return reachablerootspure(repo, minroot, roots, heads, includepath)
   142         return reachablerootspure(repo, minroot, roots, heads, includepath)