mercurial/revset.py
changeset 20706 efb34b066e7a
parent 20705 9cc2249a9461
child 20707 1d5d6f622b94
equal deleted inserted replaced
20705:9cc2249a9461 20706:efb34b066e7a
    68                     if x != nullrev and x in seen:
    68                     if x != nullrev and x in seen:
    69                         seen.add(i)
    69                         seen.add(i)
    70                         yield i
    70                         yield i
    71                         break
    71                         break
    72 
    72 
    73     return ascgeneratorset(iterate())
    73     return _ascgeneratorset(iterate())
    74 
    74 
    75 def _revsbetween(repo, roots, heads):
    75 def _revsbetween(repo, roots, heads):
    76     """Return all paths between roots and heads, inclusive of both endpoint
    76     """Return all paths between roots and heads, inclusive of both endpoint
    77     sets."""
    77     sets."""
    78     if not roots:
    78     if not roots:
  2389         if not self._finished:
  2389         if not self._finished:
  2390             for i in self:
  2390             for i in self:
  2391                 continue
  2391                 continue
  2392         self._genlist.sort(reverse=reverse)
  2392         self._genlist.sort(reverse=reverse)
  2393 
  2393 
  2394 class ascgeneratorset(_generatorset):
  2394 class _ascgeneratorset(_generatorset):
  2395     """ Same structure as _generatorset but stops iterating after it goes past
  2395     """Wrap a generator of ascending elements for lazy iteration
       
  2396 
       
  2397     Same structure as _generatorset but stops iterating after it goes past
  2396     the value when asked for membership and the element is not contained
  2398     the value when asked for membership and the element is not contained
       
  2399 
       
  2400     This class does not duck-type baseset and it's only supposed to be used
       
  2401     internally
  2397     """
  2402     """
  2398     def __contains__(self, x):
  2403     def __contains__(self, x):
  2399         if x in self._cache:
  2404         if x in self._cache:
  2400             return self._cache[x]
  2405             return self._cache[x]
  2401 
  2406