[PATCH 4 of 4 censor RFC] filelog: use censored revlog flag bit to quickly check if a node is censored

Mike Edgar adgar at google.com
Mon Jan 12 15:08:20 CST 2015


# HG changeset patch
# User Mike Edgar <adgar at google.com>
# Date 1421094576 18000
#      Mon Jan 12 15:29:36 2015 -0500
# Node ID 86068d18ad71ea47711d8b7ac96b422202deabef
# Parent  14ac00cc2162fb0d933e334b08bccdc49012843c
filelog: use censored revlog flag bit to quickly check if a node is censored

diff -r 14ac00cc2162 -r 86068d18ad71 mercurial/filelog.py
--- a/mercurial/filelog.py	Mon Jan 12 14:41:25 2015 -0500
+++ b/mercurial/filelog.py	Mon Jan 12 15:29:36 2015 -0500
@@ -85,7 +85,7 @@
             return False
 
         # censored files compare against the empty file
-        if self._iscensored(node):
+        if self._iscensored(self.rev(node)):
             return text != ''
 
         # renaming a file produces a different hash, even if the data
@@ -107,10 +107,6 @@
     def _file(self, f):
         return filelog(self.opener, f)
 
-    def _iscensored(self, revornode):
+    def _iscensored(self, rev):
         """Check if a file revision is censored."""
-        try:
-            self.revision(revornode)
-            return False
-        except error.CensoredNodeError:
-            return True
+        return self.flags(rev) & revlog.REVIDX_ISCENSORED


More information about the Mercurial-devel mailing list