mercurial/templates/map-cmdline.default
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
Thu, 14 Apr 2016 02:41:15 -0700
changeset 28938 ea1fec3e9aba
parent 25514 9b1a8ce1f03b
child 30696 667d9c93c412
permissions -rw-r--r--
hook: report untrusted hooks as failure (issue5110) (BC) Before this patch, there was no way for a repository owner to ensure that validation hooks would be run by people with write access. If someone had write access but did not trust the user owning the repository, the config and its hook would simply be ignored. After this patch, hooks from untrusted configs are taken into account but never actually run. Instead they are reported as failures right away. This will ensure validation performed by a hook is not ignored. As a side effect writer can be forced to trust a repository hgrc by adding a 'pretxnopen.trust=true' hook to the file. This was discussed during the 3.8 sprint with Matt Mackall, Augie Fackler and Kevin Bullock.

# Base templates. Due to name clashes with existing keywords, we have
# to replace some keywords with 'lkeyword', for 'labelled keyword'
changeset = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{summary}\n'
changeset_quiet = '{lnode}'
changeset_verbose = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{lfiles}{lfile_copies_switch}{description}\n'
changeset_debug = '{fullcset}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{user}{ldate}{lfile_mods}{lfile_adds}{lfile_dels}{lfile_copies_switch}{extras}{description}\n'

# File templates
lfiles = '{if(files,
               label("ui.note log.files",
                     "files:       {files}\n"))}'

lfile_mods = '{if(file_mods,
                  label("ui.debug log.files",
                        "files:       {file_mods}\n"))}'

lfile_adds = '{if(file_adds,
                  label("ui.debug log.files",
                        "files+:      {file_adds}\n"))}'

lfile_dels = '{if(file_dels,
                  label("ui.debug log.files",
                        "files-:      {file_dels}\n"))}'

lfile_copies_switch = '{if(file_copies_switch,
                           label("ui.note log.copies",
                                 "copies:     {file_copies_switch
                                               % ' {name} ({source})'}\n"))}'

# General templates
cset = '{label("log.changeset changeset.{phase}",
               "changeset:   {rev}:{node|short}")}\n'

lphase = '{label("log.phase",
                 "phase:       {phase}")}\n'

fullcset = '{label("log.changeset changeset.{phase}",
                   "changeset:   {rev}:{node}")}\n'

parent = '{label("log.parent changeset.{phase}",
                  "parent:      {rev}:{node|formatnode}")}\n'

lnode = '{label("log.node",
                "{rev}:{node|short}")}\n'

manifest = '{label("ui.debug log.manifest",
                   "manifest:    {rev}:{node}")}\n'

branch = '{label("log.branch",
                 "branch:      {branch}")}\n'

tag = '{label("log.tag",
              "tag:         {tag}")}\n'

bookmark = '{label("log.bookmark",
                   "bookmark:    {bookmark}")}\n'

user = '{label("log.user",
               "user:        {author}")}\n'

summary = '{if(desc|strip, "{label('log.summary',
                                   'summary:     {desc|firstline}')}\n")}'

ldate = '{label("log.date",
                "date:        {date|date}")}\n'

extra = '{label("ui.debug log.extra",
                "extra:       {key}={value|stringescape}")}\n'

description = '{if(desc|strip, "{label('ui.note log.description',
                                       'description:')}
                                {label('ui.note log.description',
                                       '{desc|strip}')}\n\n")}'

status = '{status} {path}\n{if(copy, "  {copy}\n")}'