Mercurial > public > mercurial-scm > hg-stable
diff mercurial/revlog.py @ 24030:828dc8db5515
revlog: add __contains__ for fast membership test
Because revlog implements __iter__, "rev in revlog" works but does silly O(n)
lookup unexpectedly. So it seems good to add fast version of __contains__.
This allows "rev in repo.changelog" in the next patch.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Wed, 04 Feb 2015 21:25:57 +0900 |
parents | 8a3c132f93d2 |
children | 76f6ae06ddf5 |
line wrap: on
line diff
--- a/mercurial/revlog.py Mon Feb 02 19:58:41 2015 -0500 +++ b/mercurial/revlog.py Wed Feb 04 21:25:57 2015 +0900 @@ -277,6 +277,8 @@ def tip(self): return self.node(len(self.index) - 2) + def __contains__(self, rev): + return 0 <= rev < len(self) def __len__(self): return len(self.index) - 1 def __iter__(self):