diff mercurial/templatekw.py @ 28177:ab8107c923b4

templater: evaluate each item of revset() as integer revision Because templater.revset() returns a list of strings, repo["-1"] was mapped to the tipmost revision. Ideally, we should make revset() return a list of integer revisions, but it turned out not simple. If revset() is a list of integers, "{ifcontains(rev, revset(), ...)}" would fail because "ifcontains" casts "rev" to a string. So this patch just converts a string back to an integer revision.
author Yuya Nishihara <yuya@tcha.org>
date Fri, 12 Feb 2016 18:08:53 +0900
parents a94f7eef3199
children 96f2d50fb9f6
line wrap: on
line diff
--- a/mercurial/templatekw.py	Sat Feb 06 19:16:12 2016 +0900
+++ b/mercurial/templatekw.py	Fri Feb 12 18:08:53 2016 +0900
@@ -492,7 +492,7 @@
     repo = args['ctx'].repo()
     f = _showlist(name, revs, **args)
     return _hybrid(f, revs,
-                   lambda x: {name: x, 'ctx': repo[x], 'revcache': {}})
+                   lambda x: {name: x, 'ctx': repo[int(x)], 'revcache': {}})
 
 def showsubrepos(**args):
     """:subrepos: List of strings. Updated subrepositories in the changeset."""