[PATCH 1 of 3] revlog: implement __contains__ to lookup a rev

Idan Kamara idankk86 at gmail.com
Mon Apr 4 15:53:36 CDT 2011


# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1301933162 -10800
# Node ID 8fa270f007c88a817150656052dee29c8443535b
# Parent  4d2f177e1a9d9be7fce7518a191c21e748078ea1
revlog: implement __contains__ to lookup a rev

diff -r 4d2f177e1a9d -r 8fa270f007c8 mercurial/revlog.py
--- a/mercurial/revlog.py	Mon Apr 04 18:05:14 2011 +0300
+++ b/mercurial/revlog.py	Mon Apr 04 19:06:02 2011 +0300
@@ -280,12 +280,22 @@
 
     def tip(self):
         return self.node(len(self.index) - 2)
+
     def __len__(self):
         return len(self.index) - 1
+
     def __iter__(self):
         for i in xrange(len(self)):
             yield i
 
+    def __contains__(self, id):
+        try:
+            # returns a node or throws
+            self.lookup(id)
+            return True
+        except LookupError:
+            return False
+
     @util.propertycache
     def nodemap(self):
         n = self.rev(self.node(0))


More information about the Mercurial-devel mailing list