Mercurial > hg
changeset 28333:41373244f4e5
templater: fix revset() to evaluate format arguments eagerly
See the previous patch for why. This patch also removes redundant list()
construction from a list.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 14 Feb 2016 00:27:09 +0900 |
parents | e91371633127 |
children | 9dc340f51e06 |
files | mercurial/templater.py tests/test-command-template.t |
diffstat | 2 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templater.py Sun Feb 14 00:18:12 2016 +0900 +++ b/mercurial/templater.py Sun Feb 14 00:27:09 2016 +0900 @@ -578,7 +578,7 @@ return m(repo) if len(args) > 1: - formatargs = list([a[0](context, mapping, a[1]) for a in args[1:]]) + formatargs = [evalfuncarg(context, mapping, a) for a in args[1:]] revs = query(revsetmod.formatspec(raw, *formatargs)) revs = list(revs) else:
--- a/tests/test-command-template.t Sun Feb 14 00:18:12 2016 +0900 +++ b/tests/test-command-template.t Sun Feb 14 00:27:09 2016 +0900 @@ -3305,6 +3305,9 @@ $ hg log --template '{revset("TIP"|lower)}\n' -l1 2 + $ hg log -T '{revset("%s", "t{"ip"}")}\n' -l1 + 2 + a list template is evaluated for each item of revset/parents $ hg log -T '{rev} p: {revset("p1(%s)", rev) % "{rev}:{node|short}"}\n'