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):