templater: properly handle file_copies with %
authorMatt Mackall <mpm@selenic.com>
Fri, 22 Feb 2013 13:45:46 -0600
changeset 18715 c4ff927b6f68
parent 18703 5bef0655f2e9
child 18716 963468e9f9e5
templater: properly handle file_copies with %
mercurial/templatekw.py
tests/test-command-template.t
--- a/mercurial/templatekw.py	Mon Feb 18 13:21:27 2013 -0600
+++ b/mercurial/templatekw.py	Fri Feb 22 13:45:46 2013 -0600
@@ -244,8 +244,8 @@
                 copies.append((fn, rename[0]))
 
     c = [{'name': x[0], 'source': x[1]} for x in copies]
-    return showlist('file_copy', c, plural='file_copies',
-                    element='file', **args)
+    f = _showlist('file_copy', c, plural='file_copies', **args)
+    return _hybrid(f, c)
 
 # showfilecopiesswitch() displays file copies only if copy records are
 # provided before calling the templater, usually with a --copies
@@ -256,8 +256,8 @@
     """
     copies = args['revcache'].get('copies') or []
     c = [{'name': x[0], 'source': x[1]} for x in copies]
-    return showlist('file_copy', c, plural='file_copies',
-                    element='file', **args)
+    f = _showlist('file_copy', c, plural='file_copies', **args)
+    return _hybrid(f, c)
 
 def showfiledels(**args):
     """:file_dels: List of strings. Files removed by this changeset."""
--- a/tests/test-command-template.t	Mon Feb 18 13:21:27 2013 -0600
+++ b/tests/test-command-template.t	Fri Feb 22 13:45:46 2013 -0600
@@ -43,6 +43,9 @@
   $ hg mv second fourth
   $ hg commit -m third -d "2020-01-01 10:01"
 
+  $ hg log --template '{file_copies % "{source} -> {name}\n"}' -r .
+  second -> fourth
+
 Quoting for ui.logtemplate
 
   $ hg tip --config "ui.logtemplate={rev}\n"