# HG changeset patch # User Mike Edgar # Date 2014-10-14 19:46:16 # Node ID d81792872984138fcefb43812f5ab3e458e22d75 # Parent 48c0b101a9de1fdbd638daa858da845cd05a6be7 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 --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -930,7 +930,14 @@ class filectx(basefilectx): filelog=self._filelog) def data(self): - return self._filelog.read(self._filenode) + try: + return 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)