Mercurial > hg-stable
changeset 22764:1e2f54a149e8
templater: set the correct phase for parents
Akin to f6371cc62d2a which did this for `hg log`, the following sets
the correct phase for the {phase} keyword when the context is a parent
of the current cset. This allows templates such as the following to be
defined,
parent = '{label("log.parent changeset.{phase}",
"parent: {rev}:{node|formatnode}")}\n'
which when called on a parent (e.g. with the `parents` template
keyword), will produce the correct phase.
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Fri, 03 Oct 2014 22:03:31 -0400 |
parents | 7ebf91426f6a |
children | 55dcc7fb731c |
files | mercurial/cmdutil.py tests/test-command-template.t |
diffstat | 2 files changed, 31 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Fri Oct 03 19:47:57 2014 -0400 +++ b/mercurial/cmdutil.py Fri Oct 03 22:03:31 2014 -0400 @@ -1152,7 +1152,9 @@ # behaviour cannot be changed so leave it here for now. def showparents(**args): ctx = args['ctx'] - parents = [[('rev', p.rev()), ('node', p.hex())] + parents = [[('rev', p.rev()), + ('node', p.hex()), + ('phase', p.phasestr())] for p in self._meaningful_parentrevs(ctx)] return showlist('parent', parents, **args)
--- a/tests/test-command-template.t Fri Oct 03 19:47:57 2014 -0400 +++ b/tests/test-command-template.t Fri Oct 03 22:03:31 2014 -0400 @@ -877,6 +877,34 @@ 1 0 +Check that {phase} works correctly on parents: + + $ cat << EOF > parentphase + > changeset_debug = '{rev} ({phase}):{parents}\n' + > parent = ' {rev} ({phase})' + > EOF + $ hg phase -r 5 --public + $ hg phase -r 7 --secret --force + $ hg log --debug -G --style ./parentphase + @ 8 (secret): 7 (secret) -1 (public) + | + o 7 (secret): -1 (public) -1 (public) + + o 6 (draft): 5 (public) 4 (draft) + |\ + | o 5 (public): 3 (public) -1 (public) + | | + o | 4 (draft): 3 (public) -1 (public) + |/ + o 3 (public): 2 (public) -1 (public) + | + o 2 (public): 1 (public) -1 (public) + | + o 1 (public): 0 (public) -1 (public) + | + o 0 (public): -1 (public) -1 (public) + + Missing non-standard names give no error (backward compatibility): $ echo "changeset = '{c}'" > t