@@ -1492,9 +1492,9 @@ class changeset_templater(changeset_prin
self.t = templater.templater.frommapfile(mapfile, filters=filters,
cache=defaulttempl)
else:
- self.t = templater.templater(filters=filters, cache=defaulttempl)
- if tmpl:
- self.t.cache['changeset'] = tmpl
+ self.t = formatter.maketemplater(ui, 'changeset', tmpl,
+ filters=filters,
+ cache=defaulttempl)
self.cache = {}
@@ -46,6 +46,7 @@ from . import (
exchange,
extensions,
fileset,
+ formatter,
graphmod,
hbisect,
help,
@@ -3681,8 +3682,7 @@ def debugtemplate(ui, repo, tmpl, **opts
mapfile = None
if revs is None:
k = 'debugtemplate'
- t = templater.templater()
- t.cache[k] = tmpl
+ t = formatter.maketemplater(ui, k, tmpl)
ui.write(templater.stringify(t(k, **props)))
else:
displayer = cmdutil.changeset_templater(ui, repo, None, opts, tmpl,
@@ -17,6 +17,7 @@ from .node import nullid, short
from . import (
error,
+ formatter,
match,
scmutil,
simplemerge,
@@ -526,7 +527,7 @@ def _formatlabels(repo, fcd, fco, fca, l
ui = repo.ui
template = ui.config('ui', 'mergemarkertemplate', _defaultconflictmarker)
- tmpl = templater.templater(cache={'conflictmarker': template})
+ tmpl = formatter.maketemplater(ui, 'conflictmarker', template)
pad = max(len(l) for l in labels)
@@ -193,7 +193,11 @@ def gettemplater(ui, topic, spec):
assert not (tmpl and mapfile)
if mapfile:
return templater.templater.frommapfile(mapfile)
- t = templater.templater()
+ return maketemplater(ui, topic, tmpl)
+
+def maketemplater(ui, topic, tmpl, filters=None, cache=None):
+ """Create a templater from a string template 'tmpl'"""
+ t = templater.templater(filters=filters, cache=cache)
if tmpl:
t.cache[topic] = tmpl
return t