comparison mercurial/error.py @ 24120:a450e0a2ba0a

revlog: in addgroup, reject ill-formed deltas based on censored nodes To ensure interoperability when clones disagree about which file nodes are censored, a restriction is made on deltas based on censored nodes. Any such delta must replace the full text of the base in a single patch. If the recipient of a delta considers the base to be censored and the delta is not in the expected form, the recipient must reject it, as it can't know if the source has also censored the base. For background and broader design of the censorship feature, see: http://mercurial.selenic.com/wiki/CensorPlan
author Mike Edgar <adgar@google.com>
date Fri, 06 Feb 2015 00:55:29 +0000
parents 7f375d2de945
children dcfdfd63bde4
comparison
equal deleted inserted replaced
24119:a5a06c9c7407 24120:a450e0a2ba0a
139 """error raised when content verification fails on a censored node""" 139 """error raised when content verification fails on a censored node"""
140 140
141 def __init__(self, filename, node): 141 def __init__(self, filename, node):
142 from node import short 142 from node import short
143 RevlogError.__init__(self, '%s:%s' % (filename, short(node))) 143 RevlogError.__init__(self, '%s:%s' % (filename, short(node)))
144
145 class CensoredBaseError(RevlogError):
146 """error raised when a delta is rejected because its base is censored
147
148 A delta based on a censored revision must be formed as single patch
149 operation which replaces the entire base with new content. This ensures
150 the delta may be applied by clones which have not censored the base.
151 """