mercurial/templates/map-cmdline.compact
author Mike Edgar <adgar@google.com>
Wed, 03 Sep 2014 22:14:20 -0400
changeset 22596 27e2317efe89
parent 13933 3d83c7d70a98
child 28827 1e184241de51
permissions -rw-r--r--
filelog: raise CensoredNodeError when hash checks fail with censor metadata With this change, when a revlog revision hash does not match its content, and the content is empty with a special metadata key, the integrity failure is assumed to be intentionally caused to remove sensitive content from repository history. To allow different Mercurial functionality to handle this scenario differently a more specific exception is raised than "ordinary" hash failures. Alternatives to this approach include, but are not limited to: - Calling a hook when hashes mismatch to allow arbitrary tombstone validation. Cons: Irresponsibly easy to disable integrity checking altogether. - Returning empty revision data eagerly instead of raising, masking the error. Cons: Push/pull won't roundtrip the tombstone, so client repos are unusable. - Doing nothing differently at this layer. Callers must do their own detection of tombstoned data if they want to handle some hash checks and not others. - Impacts dozens of callsites, many of which don't have the revision data - Would probably be missing one or two callsites at any given time - Currently we throw a RevlogError, as do 12 other places in revlog.py. Callers would need to parse the exception message and/or ensure RevlogError is not thrown from any other part of their call tree.

changeset = '{rev}{tags}{bookmarks}{parents}   {node|short}   {date|isodate}   {author|user}\n  {desc|firstline|strip}\n\n'
changeset_quiet = '{rev}:{node|short}\n'
changeset_verbose = '{rev}{tags}{parents}   {node|short}   {date|isodate}   {author}\n  {desc|strip}\n\n'
start_tags = '['
tag = '{tag},'
last_tag = '{tag}]'
start_parents = ':'
parent = '{rev},'
last_parent = '{rev}'
start_bookmarks = '['
bookmark = '{bookmark},'
last_bookmark = '{bookmark}]'