commit: select template by spec.ref name
authorYuya Nishihara <yuya@tcha.org>
Sat, 22 Apr 2017 20:29:45 +0900
changeset 32878 a3a36bcf122e
parent 32877 388e1242ed9e
child 32879 1858fc2327ef
commit: select template by spec.ref name And load all templates defined in [committemplate] since the selected template is no longer be named as 'changeset'.
mercurial/cmdutil.py
--- a/mercurial/cmdutil.py	Sat Apr 22 15:28:29 2017 +0900
+++ b/mercurial/cmdutil.py	Sat Apr 22 20:29:45 2017 +0900
@@ -2915,11 +2915,10 @@
     forms.insert(0, 'changeset')
     templatetext = None
     while forms:
-        tmpl = repo.ui.config('committemplate', '.'.join(forms))
-        if tmpl:
-            tmpl = templater.unquotestring(tmpl)
+        ref = '.'.join(forms)
+        if repo.ui.config('committemplate', ref):
             templatetext = committext = buildcommittemplate(
-                repo, ctx, subs, extramsg, tmpl)
+                repo, ctx, subs, extramsg, ref)
             break
         forms.pop()
     else:
@@ -2957,14 +2956,12 @@
 
     return text
 
-def buildcommittemplate(repo, ctx, subs, extramsg, tmpl):
+def buildcommittemplate(repo, ctx, subs, extramsg, ref):
     ui = repo.ui
-    spec = logtemplatespec(tmpl, None)
+    spec = formatter.templatespec(ref, None, None)
     t = changeset_templater(ui, repo, spec, None, {}, False)
-
-    for k, v in repo.ui.configitems('committemplate'):
-        if k != 'changeset':
-            t.t.cache[k] = v
+    t.t.cache.update((k, templater.unquotestring(v))
+                     for k, v in repo.ui.configitems('committemplate'))
 
     if not extramsg:
         extramsg = '' # ensure that extramsg is string