censor.txt
22 lines
| 1.2 KiB
| text/plain
|
TextLexer
Augie Fackler
|
r31280 | The censor system allows retroactively removing content from | ||
files. Actually censoring a node requires using the censor extension, | ||||
but the functionality for handling censored nodes is partially in core. | ||||
Censored nodes in a filelog have the flag ``REVIDX_ISCENSORED`` set, | ||||
and the contents of the censored node are replaced with a censor | ||||
tombstone. For historical reasons, the tombstone is packed in the | ||||
filelog metadata field ``censored``. This allows censored nodes to be | ||||
(mostly) safely transmitted through old formats like changegroup | ||||
versions 1 and 2. When using changegroup formats older than 3, the | ||||
receiver is required to re-add the ``REVIDX_ISCENSORED`` flag when | ||||
storing the revision. This depends on the ``censored`` metadata key | ||||
never being used for anything other than censoring revisions, which is | ||||
true as of January 2017. Note that the revlog flag is the | ||||
authoritative marker of a censored node: the tombstone should only be | ||||
consulted when looking for a reason a node was censored or when revlog | ||||
flags are unavailable as mentioned above. | ||||
The tombstone data is a free-form string. It's expected that users of | ||||
censor will want to record the reason for censoring a node in the | ||||
tombstone. Censored nodes must be able to fit in the size of the | ||||
content being censored. | ||||