[PATCH 4 of 9] revlog: add a flags method that returns revision flags

Vishakh H vsh426 at gmail.com
Tue Jul 6 05:47:03 CDT 2010


# HG changeset patch
# User Vishakh H <vsh426 at gmail.com>
# Date 1278412035 -19800
# Branch stable
# Node ID 41e3851011511e3b7d5e9b9dc11f07e7a5fd0ce4
# Parent  e9de925ecfaf793340e787d8255f3a4571cfb813
revlog: add a flags method that returns revision flags

flags returns all flags in revision by default or checks for an
optional second flag.

diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -533,6 +533,11 @@
         return self.index[rev][1]
     def base(self, rev):
         return self.index[rev][3]
+    def flags(self, rev, checkflag=None):
+        if checkflag:
+            return ((self.index[rev][0] & 0xFFFF) & checkflag)
+        else:
+            return (self.index[rev][0] & 0xFFFF)
 
     def size(self, rev):
         """return the length of the uncompressed text for a given revision"""
@@ -1017,9 +1022,9 @@
         base = self.base(rev)
 
         # check rev flags
-        if self.index[rev][0] & 0xFFFF:
+        if self.flags(rev):
             raise RevlogError(_('incompatible revision flag %x') %
-                              (self.index[rev][0] & 0xFFFF))
+                              self.flags(rev))
 
         # do we have useful data cached?
         if self._cache and self._cache[1] >= base and self._cache[1] < rev:


More information about the Mercurial-devel mailing list