mercurial/revset.py
changeset 20708 17c89e5a5627
parent 20707 1d5d6f622b94
child 20709 71df845d86cf
equal deleted inserted replaced
20707:1d5d6f622b94 20708:17c89e5a5627
  2234 
  2234 
  2235     def __sub__(self, x):
  2235     def __sub__(self, x):
  2236         return lazyset(self, lambda r: r not in x)
  2236         return lazyset(self, lambda r: r not in x)
  2237 
  2237 
  2238     def __add__(self, x):
  2238     def __add__(self, x):
  2239         return lazyset(addset(self, x))
  2239         return lazyset(_addset(self, x))
  2240 
  2240 
  2241     def __nonzero__(self):
  2241     def __nonzero__(self):
  2242         for r in self:
  2242         for r in self:
  2243             return True
  2243             return True
  2244         return False
  2244         return False
  2305 
  2305 
  2306     def reverse(self):
  2306     def reverse(self):
  2307         self._subset.reverse()
  2307         self._subset.reverse()
  2308         self._ascending = not self._ascending
  2308         self._ascending = not self._ascending
  2309 
  2309 
  2310 class addset(object):
  2310 class _addset(object):
  2311     """Wrapper structure for lazily adding two structures without losing much
  2311     """Represent the addition of two sets
       
  2312 
       
  2313     Wrapper structure for lazily adding two structures without losing much
  2312     performance on the __contains__ method
  2314     performance on the __contains__ method
       
  2315 
       
  2316     This class does not duck-type baseset and it's only supposed to be used
       
  2317     internally
  2313     """
  2318     """
  2314     def __init__(self, revs1, revs2):
  2319     def __init__(self, revs1, revs2):
  2315         self._r1 = revs1
  2320         self._r1 = revs1
  2316         self._r2 = revs2
  2321         self._r2 = revs2
  2317         self._iter = None
  2322         self._iter = None
  2493             return orderedlazyset(self, lambda r: r not in x)
  2498             return orderedlazyset(self, lambda r: r not in x)
  2494         else:
  2499         else:
  2495             return orderedlazyset(self, lambda r: r not in x, ascending=False)
  2500             return orderedlazyset(self, lambda r: r not in x, ascending=False)
  2496 
  2501 
  2497     def __add__(self, x):
  2502     def __add__(self, x):
  2498         return lazyset(addset(self, x))
  2503         return lazyset(_addset(self, x))
  2499 
  2504 
  2500     def __len__(self):
  2505     def __len__(self):
  2501         if not self._hiddenrevs:
  2506         if not self._hiddenrevs:
  2502             return abs(self._end - self._start)
  2507             return abs(self._end - self._start)
  2503         else:
  2508         else: