diff mercurial/logcmdutil.py @ 36985:255f635c3204

templater: convert resources to a table of callables for future extension I'm going to add a full templating support to the annotate command. As the annotate is a filectx-oriented command, we'll need a way to look up a ctx from a bounded fctx only when necessary. This is the minimal change to support that. I'm thinking of defining a proper interface to look up template resources to fix other issues, but that isn't ready yet. (Changes from V1: just updated tests and patch descriptions.)
author Yuya Nishihara <yuya@tcha.org>
date Sun, 11 Mar 2018 21:05:29 +0900
parents 6ff6e1d6b5b8
children 317382151ac3
line wrap: on
line diff
--- a/mercurial/logcmdutil.py	Sat Mar 17 21:46:17 2018 -0400
+++ b/mercurial/logcmdutil.py	Sun Mar 11 21:05:29 2018 +0900
@@ -423,7 +423,7 @@
                                          resources=tres,
                                          cache=templatekw.defaulttempl)
         self._counter = itertools.count()
-        self.cache = tres['cache']  # shared with _graphnodeformatter()
+        self._getcache = tres['cache']  # shared with _graphnodeformatter()
 
         self._tref = tmplspec.ref
         self._parts = {'header': '', 'footer': '',
@@ -852,7 +852,8 @@
     spec = templater.unquotestring(spec)
     tres = formatter.templateresources(ui)
     if isinstance(displayer, changesettemplater):
-        tres['cache'] = displayer.cache  # reuse cache of slow templates
+        # reuse cache of slow templates
+        tres['cache'] = displayer._getcache
     templ = formatter.maketemplater(ui, spec, defaults=templatekw.keywords,
                                     resources=tres)
     def formatnode(repo, ctx):