[PATCH 3 of 3] template: add extrakeys (dict) keyword to templater
Augie Fackler
raf at durin42.com
Sat Dec 14 10:56:44 CST 2013
On Thu, Nov 21, 2013 at 04:04:25PM -0500, Matthew Turk wrote:
> # HG changeset patch
> # User Matthew Turk <matthewturk at gmail.com>
> # Date 1385067325 18000
> # Thu Nov 21 15:55:25 2013 -0500
> # Node ID 3d7f6e0ad51047f4eacf68abcba12dcaecb0081b
> # Parent 547837e59d439af3c907931ca65cab911d00dfe3
> template: add extrakeys (dict) keyword to templater
>
> This returns the 'extras' dictionary to the templater. It enables utilization
> of templates such as:
>
> hg log -r 0 --template "{get(extras, 'convert_revision')}\n"
I'm confused. Is there some magic in the templater that causes the
get() call to use extrakeys?
>
> where 'convert_revision' is the key in the 'extras' dictionary. This should
> allow for subsequent template styles to be written that perform meaningful
> queries on the extras dict, for use in things like repository conversions,
> additional metadata and so on.
>
> For example, in my primary project repository, extras contains amend_source,
> branch, close, convert_revision, rebase_source, source, transplant_source.
>
> diff -r 547837e59d43 -r 3d7f6e0ad510 mercurial/templatekw.py
> --- a/mercurial/templatekw.py Thu Nov 21 15:47:26 2013 -0500
> +++ b/mercurial/templatekw.py Thu Nov 21 15:55:25 2013 -0500
> @@ -226,6 +226,10 @@
> f = _showlist('extra', c, plural='extras', **args)
> return _hybrid(f, c, lambda x: '%s=%s' % (x['key'], x['value']))
>
> +def showextrakeys(**args):
> + """:extrakeys: The 'extras' attribute as a dict."""
> + return args['ctx'].extra()
> +
> def showfileadds(**args):
> """:file_adds: List of strings. Files added by this changeset."""
> repo, ctx, revcache = args['repo'], args['ctx'], args['revcache']
> @@ -362,6 +366,7 @@
> 'desc': showdescription,
> 'diffstat': showdiffstat,
> 'extras': showextras,
> + 'extrakeys': showextrakeys,
> 'file_adds': showfileadds,
> 'file_copies': showfilecopies,
> 'file_copies_switch': showfilecopiesswitch,
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list