Mercurial > hg
changeset 45765:ed84a4d48910
config: add a new [command-templates] section for templates defined by hg
The existing `[templates]` section lets the user define their own keys
and then refer to them on the command line with `-T`. There are many
cases where hg wants to use a user-defined template with a given name,
such as `ui.logtemplate` and `ui.mergemarkertemplate`. This patch
starts moving such configs in a common section by moving
`ui.logtemplate` to `command-templates.log` (with an alias from the
old name, of course).
Differential Revision: https://phab.mercurial-scm.org/D9245
line wrap: on
line diff
--- a/mercurial/commands.py Mon Oct 26 10:08:22 2020 -0700 +++ b/mercurial/commands.py Fri Oct 23 10:56:18 2020 -0700 @@ -4566,7 +4566,7 @@ See :hg:`help templates` for more about pre-packaged styles and specifying custom templates. The default template used by the log - command can be customized via the ``ui.logtemplate`` configuration + command can be customized via the ``command-templates.log`` configuration setting. Returns 0 on success.
--- a/mercurial/configitems.py Mon Oct 26 10:08:22 2020 -0700 +++ b/mercurial/configitems.py Fri Oct 23 10:56:18 2020 -0700 @@ -223,6 +223,9 @@ coreconfigitem( b'color', b'pagermode', default=dynamicdefault, ) +coreconfigitem( + b'command-templates', b'log', default=None, alias=[(b'ui', b'logtemplate')], +) _registerdiffopts(section=b'commands', configprefix=b'commit.interactive.') coreconfigitem( b'commands', b'commit.post-status', default=False, @@ -1306,9 +1309,6 @@ b'ui', b'logblockedtimes', default=False, ) coreconfigitem( - b'ui', b'logtemplate', default=None, -) -coreconfigitem( b'ui', b'merge', default=None, ) coreconfigitem(
--- a/mercurial/helptext/config.txt Mon Oct 26 10:08:22 2020 -0700 +++ b/mercurial/helptext/config.txt Fri Oct 23 10:56:18 2020 -0700 @@ -2363,7 +2363,7 @@ (default: 10000000) ``logtemplate`` - Template string for commands that print changesets. + (DEPRECATED) Use ``command-templates.log`` instead. ``merge`` The conflict resolution program to use during a manual merge. @@ -2561,6 +2561,15 @@ Increase the amount of output printed. (default: False) +``command-templates`` +--------------------- + +Templates used for customizing the output of commands. + +``log`` + Template string for commands that print changesets. + + ``web`` -------
--- a/mercurial/logcmdutil.py Mon Oct 26 10:08:22 2020 -0700 +++ b/mercurial/logcmdutil.py Fri Oct 23 10:56:18 2020 -0700 @@ -623,7 +623,7 @@ # ui settings if not tmpl and not style: # template are stronger than style - tmpl = ui.config(b'ui', b'logtemplate') + tmpl = ui.config(b'command-templates', b'log') if tmpl: return formatter.literal_templatespec(templater.unquotestring(tmpl)) else: @@ -656,7 +656,7 @@ Display format will be the first non-empty hit of: 1. option 'template' 2. option 'style' - 3. [ui] setting 'logtemplate' + 3. [command-templates] setting 'log' 4. [ui] setting 'style' If all of these values are either the unset or the empty string, regular display via changesetprinter() is done.
--- a/mercurial/ui.py Mon Oct 26 10:08:22 2020 -0700 +++ b/mercurial/ui.py Fri Oct 23 10:56:18 2020 -0700 @@ -507,6 +507,8 @@ del cfg[b'defaults'][k] for k, v in cfg.items(b'commands'): del cfg[b'commands'][k] + for k, v in cfg.items(b'command-templates'): + del cfg[b'command-templates'][k] # Don't remove aliases from the configuration if in the exceptionlist if self.plain(b'alias'): for k, v in cfg.items(b'alias'):
--- a/tests/test-amend.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-amend.t Fri Oct 23 10:56:18 2020 -0700 @@ -403,10 +403,10 @@ $ hg init $TESTTMP/repo5 $ cd $TESTTMP/repo5 $ cat <<'EOF' >> .hg/hgrc - > [ui] - > logtemplate = 'user: {user} - > date: {date|date} - > summary: {desc|firstline}\n' + > [command-templates] + > log = 'user: {user} + > date: {date|date} + > summary: {desc|firstline}\n' > EOF $ echo a>a
--- a/tests/test-bookmarks-pushpull.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-bookmarks-pushpull.t Fri Oct 23 10:56:18 2020 -0700 @@ -10,8 +10,8 @@ #require serve $ cat << EOF >> $HGRCPATH - > [ui] - > logtemplate={rev}:{node|short} {desc|firstline} + > [command-templates] + > log={rev}:{node|short} {desc|firstline} > [phases] > publish=False > [experimental]
--- a/tests/test-bundle2-exchange.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-bundle2-exchange.t Fri Oct 23 10:56:18 2020 -0700 @@ -30,7 +30,8 @@ > bundle2-output-capture=True > [ui] > ssh="$PYTHON" "$TESTDIR/dummyssh" - > logtemplate={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline} + > [command-templates] + > log={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline} > [web] > push_ssl = false > allow_push = *
--- a/tests/test-bundle2-format.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-bundle2-format.t Fri Oct 23 10:56:18 2020 -0700 @@ -235,7 +235,8 @@ > evolution.createmarkers=True > [ui] > ssh="$PYTHON" "$TESTDIR/dummyssh" - > logtemplate={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline} + > [command-templates] + > log={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline} > [web] > push_ssl = false > allow_push = *
--- a/tests/test-bundle2-multiple-changegroups.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-bundle2-multiple-changegroups.t Fri Oct 23 10:56:18 2020 -0700 @@ -34,8 +34,8 @@ > EOF $ cat >> $HGRCPATH << EOF - > [ui] - > logtemplate={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline} + > [command-templates] + > log={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline} > EOF Start with a simple repository with a single commit
--- a/tests/test-bundle2-remote-changegroup.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-bundle2-remote-changegroup.t Fri Oct 23 10:56:18 2020 -0700 @@ -96,7 +96,8 @@ $ cat >> $HGRCPATH << EOF > [ui] > ssh="$PYTHON" "$TESTDIR/dummyssh" - > logtemplate={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline} + > [command-templates] + > log={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline} > EOF $ hg init repo
--- a/tests/test-commandserver.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-commandserver.t Fri Oct 23 10:56:18 2020 -0700 @@ -982,8 +982,8 @@ $ cd repo3 $ cat <<EOF >> $HGRCPATH - > [ui] - > logtemplate = {rev} {desc|firstline} ({files})\n + > [command-templates] + > log = {rev} {desc|firstline} ({files})\n > > [extensions] > failafterfinalize = $TESTTMP/failafterfinalize.py
--- a/tests/test-copies-chain-merge.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-copies-chain-merge.t Fri Oct 23 10:56:18 2020 -0700 @@ -17,8 +17,8 @@ $ cat << EOF >> $HGRCPATH > [diff] > git=yes - > [ui] - > logtemplate={rev} {desc}\n + > [command-templates] + > log={rev} {desc}\n > EOF #if compatibility
--- a/tests/test-dirstate-nonnormalset.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-dirstate-nonnormalset.t Fri Oct 23 10:56:18 2020 -0700 @@ -1,6 +1,6 @@ $ cat >> $HGRCPATH << EOF - > [ui] - > logtemplate="{rev}:{node|short} ({phase}) [{tags} {bookmarks}] {desc|firstline}\n" + > [command-templates] + > log="{rev}:{node|short} ({phase}) [{tags} {bookmarks}] {desc|firstline}\n" > [extensions] > dirstateparanoidcheck = $TESTDIR/../contrib/dirstatenonnormalcheck.py > [experimental]
--- a/tests/test-glog-beautifygraph.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-glog-beautifygraph.t Fri Oct 23 10:56:18 2020 -0700 @@ -3084,8 +3084,8 @@ $ hg init multiroots $ cd multiroots $ cat <<EOF > .hg/hgrc - > [ui] - > logtemplate = '{rev} {desc}\n\n' + > [command-templates] + > log = '{rev} {desc}\n\n' > EOF $ touch foo
--- a/tests/test-glog-topological.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-glog-topological.t Fri Oct 23 10:56:18 2020 -0700 @@ -1,8 +1,8 @@ This test file aims at test topological iteration and the various configuration it can has. $ cat >> $HGRCPATH << EOF - > [ui] - > logtemplate={rev}\n + > [command-templates] + > log={rev}\n > EOF On this simple example, all topological branch are displayed in turn until we
--- a/tests/test-glog.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-glog.t Fri Oct 23 10:56:18 2020 -0700 @@ -3420,8 +3420,8 @@ $ hg init multiroots $ cd multiroots $ cat <<EOF > .hg/hgrc - > [ui] - > logtemplate = '{rev} {desc}\n\n' + > [command-templates] + > log = '{rev} {desc}\n\n' > EOF $ touch foo
--- a/tests/test-grep.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-grep.t Fri Oct 23 10:56:18 2020 -0700 @@ -851,8 +851,8 @@ $ cd follow $ cat <<'EOF' >> .hg/hgrc - > [ui] - > logtemplate = '{rev}: {join(files % "{status} {path}", ", ")}\n' + > [command-templates] + > log = '{rev}: {join(files % "{status} {path}", ", ")}\n' > EOF $ for f in add0 add0-mod1 add0-rm1 add0-mod2 add0-rm2 add0-mod3 add0-mod4 add0-rm4; do
--- a/tests/test-histedit-obsolete.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-histedit-obsolete.t Fri Oct 23 10:56:18 2020 -0700 @@ -293,8 +293,8 @@ ------------------------------------------- $ cat >> $HGRCPATH << EOF - > [ui] - > logtemplate= {rev}:{node|short} ({phase}) {desc|firstline}\n + > [command-templates] + > log = {rev}:{node|short} ({phase}) {desc|firstline}\n > EOF $ hg ph -pv '.^'
--- a/tests/test-log.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-log.t Fri Oct 23 10:56:18 2020 -0700 @@ -450,6 +450,16 @@ a +Respects ui.logtemplate and command-templates.log configs (the latter takes +precedence) + + $ hg log -r 0 --config ui.logtemplate="foo {rev}\n" + foo 0 + $ hg log -r 0 --config command-templates.log="bar {rev}\n" + bar 0 + $ hg log -r 0 --config ui.logtemplate="foo {rev}\n" \ + > --config command-templates.log="bar {rev}\n" + bar 0 -f and multiple filelog heads @@ -1122,8 +1132,8 @@ $ hg init follow-dup $ cd follow-dup $ cat <<EOF >> .hg/hgrc - > [ui] - > logtemplate = '=== {rev}: {desc}\n' + > [command-templates] + > log = '=== {rev}: {desc}\n' > [diff] > nodates = True > EOF
--- a/tests/test-obsmarker-template.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-obsmarker-template.t Fri Oct 23 10:56:18 2020 -0700 @@ -122,7 +122,7 @@ o ea207398892e - $ hg log -G --config ui.logtemplate= + $ hg log -G --config command-templates.log= o changeset: 3:d004c8f274b9 | tag: tip | parent: 0:ea207398892e
--- a/tests/test-obsolete-bundle-strip.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-obsolete-bundle-strip.t Fri Oct 23 10:56:18 2020 -0700 @@ -9,9 +9,9 @@ ------------ $ cat >> $HGRCPATH <<EOF - > [ui] + > [command-templates] > # simpler log output - > logtemplate = "{node|short}: {desc}\n" + > log = "{node|short}: {desc}\n" > > [experimental] > # enable evolution
--- a/tests/test-obsolete-checkheads.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-obsolete-checkheads.t Fri Oct 23 10:56:18 2020 -0700 @@ -3,8 +3,8 @@ > [phases] > # public changeset are not obsolete > publish=false - > [ui] - > logtemplate='{node|short} ({phase}) {desc|firstline}\n' + > [command-templates] + > log='{node|short} ({phase}) {desc|firstline}\n' > [experimental] > evolution.createmarkers=True > EOF
--- a/tests/test-obsolete-distributed.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-obsolete-distributed.t Fri Oct 23 10:56:18 2020 -0700 @@ -16,8 +16,8 @@ > evolution = all > [phases] > publish = False - > [ui] - > logtemplate= {rev}:{node|short} {desc}{if(obsfate, " [{join(obsfate, "; ")}]")}\n + > [command-templates] + > log = {rev}:{node|short} {desc}{if(obsfate, " [{join(obsfate, "; ")}]")}\n > EOF Check distributed chain building
--- a/tests/test-rebase-obsolete.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-rebase-obsolete.t Fri Oct 23 10:56:18 2020 -0700 @@ -5,8 +5,8 @@ Enable obsolete $ cat >> $HGRCPATH << EOF - > [ui] - > logtemplate= {rev}:{node|short} {desc|firstline}{if(obsolete,' ({obsfate})')} + > [command-templates] + > log= {rev}:{node|short} {desc|firstline}{if(obsolete,' ({obsfate})')} > [experimental] > evolution.createmarkers=True > evolution.allowunstable=True
--- a/tests/test-revset-legacy-lookup.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-revset-legacy-lookup.t Fri Oct 23 10:56:18 2020 -0700 @@ -1,7 +1,7 @@ $ cat >> $HGRCPATH << EOF - > [ui] - > logtemplate="{rev}:{node|short} {desc} [{tags}]\n" + > [command-templates] + > log="{rev}:{node|short} {desc} [{tags}]\n" > EOF $ hg init legacy-lookup
--- a/tests/test-template-map.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-template-map.t Fri Oct 23 10:56:18 2020 -0700 @@ -48,8 +48,9 @@ Make sure user/global hgrc does not affect tests + $ echo '[command-templates]' > .hg/hgrc + $ echo 'log =' >> .hg/hgrc $ echo '[ui]' > .hg/hgrc - $ echo 'logtemplate =' >> .hg/hgrc $ echo 'style =' >> .hg/hgrc Add some simple styles to settings
--- a/tests/test-treediscovery.t Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/test-treediscovery.t Fri Oct 23 10:56:18 2020 -0700 @@ -3,8 +3,8 @@ $ CAP="getbundle bundle2" $ . "$TESTDIR/notcapable" $ cat >> $HGRCPATH <<EOF - > [ui] - > logtemplate="{rev} {node|short}: {desc} {branches}\n" + > [command-templates] + > log="{rev} {node|short}: {desc} {branches}\n" > EOF Setup HTTP server control:
--- a/tests/testlib/exchange-obsmarker-util.sh Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/testlib/exchange-obsmarker-util.sh Fri Oct 23 10:56:18 2020 -0700 @@ -14,9 +14,9 @@ push_ssl = false allow_push = * -[ui] +[command-templates] # simpler log output -logtemplate ="{node|short} ({phase}): {desc}\n" +log ="{node|short} ({phase}): {desc}\n" [phases] # non publishing server
--- a/tests/testlib/push-checkheads-util.sh Mon Oct 26 10:08:22 2020 -0700 +++ b/tests/testlib/push-checkheads-util.sh Fri Oct 23 10:56:18 2020 -0700 @@ -1,9 +1,9 @@ # setup config and various utility to test new heads checks on push cat >> $HGRCPATH <<EOF -[ui] +[command-templates] # simpler log output -logtemplate ="{node|short} ({phase}): {desc}\n" +log ="{node|short} ({phase}): {desc}\n" [phases] # non publishing server