[PATCH 1 of 2 v3] context: handle censored data in an on-disk file context based on config

adgar at google.com adgar at google.com
Tue Oct 14 20:22:42 UTC 2014


# HG changeset patch
# User Mike Edgar <adgar at google.com>
# Date 1413315976 14400
#      Tue Oct 14 15:46:16 2014 -0400
# Node ID 35378c7c4440e27bd1569ec55d18e0f036209eca
# Parent  32533d333ad47871be09852129a47c02d3d3c169
context: handle censored data in an on-disk file context based on config

Two possible behaviors are defined for handling censored data: abort, and
ignore. When we ignore censored data we return an empty file to callers
requesting the file data.

diff -r 32533d333ad4 -r 35378c7c4440 mercurial/context.py
--- a/mercurial/context.py	Fri Oct 10 10:34:52 2014 -0400
+++ b/mercurial/context.py	Tue Oct 14 15:46:16 2014 -0400
@@ -930,7 +930,14 @@
                        filelog=self._filelog)
 
     def data(self):
-        return self._filelog.read(self._filenode)
+        try:
+            self._filelog.read(self._filenode)
+        except error.CensoredNodeError:
+            if self._repo.ui.config("censor", "policy", "abort") == "ignore":
+                return ""
+            raise util.Abort(_("censored node: %s") % short(self._filenode),
+                             hint="set censor.policy to ignore errors")
+
     def size(self):
         return self._filelog.size(self._filerev)
 


More information about the Mercurial-devel mailing list