Mercurial > public > mercurial-scm > hg
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. |