Comments
Patch
@@ -5,7 +5,7 @@
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-import revlog
+import error, revlog
import re
_mdre = re.compile('\1\n')
@@ -27,6 +27,10 @@
keys = sorted(meta.iterkeys())
return "".join("%s: %s\n" % (k, meta[k]) for k in keys)
+def _censoredtext(text):
+ m, offs = _parsemeta(text)
+ return m and "censored" in m and not text[offs:]
+
class filelog(revlog.revlog):
def __init__(self, opener, path):
super(filelog, self).__init__(opener,
@@ -86,5 +90,13 @@
return True
+ def checkhash(self, text, p1, p2, node, rev=None):
+ try:
+ super(filelog, self).checkhash(text, p1, p2, node, rev=rev)
+ except error.RevlogError:
+ if _censoredtext(text):
+ raise error.CensoredNodeError(node, text)
+ raise
+
def _file(self, f):
return filelog(self.opener, f)