[PATCH] template: add rev*(revision) functions for use with revsets

Yuya Nishihara yuya at tcha.org
Wed Sep 2 09:20:51 CDT 2015


On Tue, 01 Sep 2015 23:30:12 -0500, timeless at mozdev.org wrote:
> # HG changeset patch
> # User timeless at mozdev.org
> # Date 1441163415 14400
> #      Tue Sep 01 23:10:15 2015 -0400
> # Node ID ce481a6fe8d07685374baca22066dcdc4ab72c80
> # Parent  f77a3f27cea533232dc107a72773e90e2de9549d
> template: add rev*(revision) functions for use with revsets
> 
> revauthor
> revbisect
> revbookmarks
> revbranches
> revdate
> revdesc
> revdiffstat
> revfiles
> revset
> revtags
> 
> diff --git a/mercurial/templater.py b/mercurial/templater.py
> --- a/mercurial/templater.py
> +++ b/mercurial/templater.py
> @@ -15,8 +15,10 @@
>  from . import (
>      config,
>      error,
> +    hbisect,
>      minirst,
>      parser,
> +    patch,
>      revset as revsetmod,
>      templatefilters,
>      templatekw,
> @@ -544,6 +546,80 @@
>          tzoffset = util.makedate()[1]
>      return (date[0], tzoffset)
>  
> +def ctxrepo(func, context, mapping, args):
> +    if not len(args) == 1:
> +        raise error.ParseError(_("%s expects one argument" % func))
> +    raw = stringify(args[0][0](context, mapping, args[0][1]))
> +    rev = raw
> +    ctx = mapping['ctx']
> +    repo = ctx.repo()
> +    ctx = repo[rev]
> +    return ctx, repo
> +
> +def revdesc(context, mapping, args):
> +    """:revdesc(rev): Show description.
> +    See :hg:`help templates.desc`."""
> +    ctx, repo = ctxrepo('revdesc', context, mapping, args)
> +    return ctx.description().strip()

My idea is to add a function or operator that switches mapping['ctx'].
For example, "{desc[rev]}" will copy mapping, replace ctx by repo[rev],
then call showdescription().

https://selenic.com/pipermail/mercurial-devel/2015-May/070092.html


More information about the Mercurial-devel mailing list