comparison mercurial/context.py @ 22932:d81792872984

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.
author Mike Edgar <adgar@google.com>
date Tue, 14 Oct 2014 15:46:16 -0400
parents cfa8d7561938
children 03602f76deee
comparison
equal deleted inserted replaced
22931:48c0b101a9de 22932:d81792872984
928 opening a new filelog''' 928 opening a new filelog'''
929 return filectx(self._repo, self._path, fileid=fileid, 929 return filectx(self._repo, self._path, fileid=fileid,
930 filelog=self._filelog) 930 filelog=self._filelog)
931 931
932 def data(self): 932 def data(self):
933 return self._filelog.read(self._filenode) 933 try:
934 return self._filelog.read(self._filenode)
935 except error.CensoredNodeError:
936 if self._repo.ui.config("censor", "policy", "abort") == "ignore":
937 return ""
938 raise util.Abort(_("censored node: %s") % short(self._filenode),
939 hint="set censor.policy to ignore errors")
940
934 def size(self): 941 def size(self):
935 return self._filelog.size(self._filerev) 942 return self._filelog.size(self._filerev)
936 943
937 def renamed(self): 944 def renamed(self):
938 """check if file was actually renamed in this changeset revision 945 """check if file was actually renamed in this changeset revision