rebase: use fm.formatlist() and fm.formatdict() to support user template
Thanks to Yuya for suggesting this in D1173.
Differential Revision: https://phab.mercurial-scm.org/D1293
--- a/hgext/rebase.py Thu Nov 09 20:06:30 2017 +0530
+++ b/hgext/rebase.py Sat Oct 28 17:50:25 2017 +0530
@@ -21,7 +21,6 @@
from mercurial.i18n import _
from mercurial.node import (
- hex,
nullid,
nullrev,
short,
@@ -1563,8 +1562,12 @@
replacements[oldnode] = succs
scmutil.cleanupnodes(repo, replacements, 'rebase', moves)
if fm:
- nodechanges = {hex(oldn): [hex(n) for n in newn]
- for oldn, newn in replacements.iteritems()}
+ hf = fm.hexfunc
+ fl = fm.formatlist
+ fd = fm.formatdict
+ nodechanges = fd({hf(oldn): fl([hf(n) for n in newn], name='node')
+ for oldn, newn in replacements.iteritems()},
+ key="oldnode", value="newnodes")
fm.data(nodechanges=nodechanges)
def pullrebase(orig, ui, repo, *args, **opts):
--- a/tests/test-rebase-templates.t Thu Nov 09 20:06:30 2017 +0530
+++ b/tests/test-rebase-templates.t Sat Oct 28 17:50:25 2017 +0530
@@ -54,5 +54,4 @@
$ hg rebase -s 6 -d 4 -q -T "{nodechanges % '{oldnode}:{newnodes % ' {node} '}'}"
- d9d6773efc831c274eace04bc13e8e6412517139: f48cd65c6dc3d2acb55da54402a5b029546e546f (no-eol) (false !)
- d9d6773efc831c274eace04bc13e8e6412517139 (no-eol)
+ d9d6773efc831c274eace04bc13e8e6412517139: f48cd65c6dc3d2acb55da54402a5b029546e546f (no-eol)