[PATCH 05 of 14] revlog: add a flags method that returns revision flags

Vishakh H vsh426 at gmail.com
Fri Jul 16 02:15:13 CDT 2010


# HG changeset patch
# User Vishakh H <vsh426 at gmail.com>
# Date 1279263210 -19800
# Node ID 25f876f3a1a882eda81e01651bc229c46a838af9
# Parent  f24fc146825832dc47442cabdefed43c9afca0ba
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"""
@@ -1020,9 +1025,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