Mercurial > hg
annotate mercurial/help/internals/censor.txt @ 43240:4353942be294
tracing: add a couple of trace points on obsolete and repoview
I was seeing weird stalls in some fast commands, and these trace
events help explain them.
Differential Revision: https://phab.mercurial-scm.org/D6550
author | Augie Fackler <augie@google.com> |
---|---|
date | Wed, 19 Jun 2019 18:22:10 -0400 |
parents | 1b699a208cee |
children |
rev | line source |
---|---|
31280
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
1 The censor system allows retroactively removing content from |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
2 files. Actually censoring a node requires using the censor extension, |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
3 but the functionality for handling censored nodes is partially in core. |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
4 |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
5 Censored nodes in a filelog have the flag ``REVIDX_ISCENSORED`` set, |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
6 and the contents of the censored node are replaced with a censor |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
7 tombstone. For historical reasons, the tombstone is packed in the |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
8 filelog metadata field ``censored``. This allows censored nodes to be |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
9 (mostly) safely transmitted through old formats like changegroup |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
10 versions 1 and 2. When using changegroup formats older than 3, the |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
11 receiver is required to re-add the ``REVIDX_ISCENSORED`` flag when |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
12 storing the revision. This depends on the ``censored`` metadata key |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
13 never being used for anything other than censoring revisions, which is |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
14 true as of January 2017. Note that the revlog flag is the |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
15 authoritative marker of a censored node: the tombstone should only be |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
16 consulted when looking for a reason a node was censored or when revlog |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
17 flags are unavailable as mentioned above. |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
18 |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
19 The tombstone data is a free-form string. It's expected that users of |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
20 censor will want to record the reason for censoring a node in the |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
21 tombstone. Censored nodes must be able to fit in the size of the |
1b699a208cee
internals: add some brief documentation about censor
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
22 content being censored. |