comparison mercurial/revset.py @ 21205:e2031c8ca4f8 stable

revset: also inline spanset._contained in __len__ For consistency with what happen in `__contains__`, we inline the range test into `__len__` too.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Fri, 25 Apr 2014 18:00:07 -0700
parents 1d7a2771aa36
children b9defeeb62e6
comparison
equal deleted inserted replaced
21204:1d7a2771aa36 21205:e2031c8ca4f8
2820 def __len__(self): 2820 def __len__(self):
2821 if not self._hiddenrevs: 2821 if not self._hiddenrevs:
2822 return abs(self._end - self._start) 2822 return abs(self._end - self._start)
2823 else: 2823 else:
2824 count = 0 2824 count = 0
2825 start = self._start
2826 end = self._end
2825 for rev in self._hiddenrevs: 2827 for rev in self._hiddenrevs:
2826 if self._contained(rev): 2828 if (end < rev <= start) or (start <= rev and rev < end):
2827 count += 1 2829 count += 1
2828 return abs(self._end - self._start) - count 2830 return abs(self._end - self._start) - count
2829 2831
2830 def __getitem__(self, x): 2832 def __getitem__(self, x):
2831 # Basic implementation to be changed in future patches. 2833 # Basic implementation to be changed in future patches.