exthelper: reintroduce the ability to register templates
authorMatt Harbison <matt_harbison@yahoo.com>
Thu, 27 Dec 2018 21:55:22 -0500
changeset 41069 70ca0e846d25
parent 41068 28a4fb793ba1
child 41070 8f40e21ca842
exthelper: reintroduce the ability to register templates Same mechanism as revsets earlier in this series. The LFS extension is updated to provide test coverage. This also seems to make the test failure around issue6033 mentioned in 0a7f582f6f1f much less regular on Windows.
hgext/lfs/__init__.py
mercurial/exthelper.py
--- a/hgext/lfs/__init__.py	Thu Dec 27 21:46:03 2018 -0500
+++ b/hgext/lfs/__init__.py	Thu Dec 27 21:55:22 2018 -0500
@@ -169,6 +169,7 @@
 extsetup = eh.finalextsetup
 uisetup = eh.finaluisetup
 reposetup = eh.finalreposetup
+templatekeyword = eh.templatekeyword
 
 eh.configitem('experimental', 'lfs.serve',
     default=True,
@@ -199,7 +200,6 @@
 eh.configitem('lfs', 'retry',
     default=5,
 )
-templatekeyword = registrar.templatekeyword()
 filesetpredicate = registrar.filesetpredicate()
 
 lfsprocessor = (
@@ -347,7 +347,7 @@
         return wrapper.pointerfromctx(ctx, f, removed=True) is not None
     return mctx.predicate(lfsfilep, predrepr='<lfs>')
 
-@templatekeyword('lfs_files', requires={'ctx'})
+@eh.templatekeyword('lfs_files', requires={'ctx'})
 def lfsfiles(context, mapping):
     """List of strings. All files modified, added, or removed by this
     changeset."""
--- a/mercurial/exthelper.py	Thu Dec 27 21:46:03 2018 -0500
+++ b/mercurial/exthelper.py	Thu Dec 27 21:55:22 2018 -0500
@@ -41,6 +41,7 @@
         self.configtable = {}
         self.configitem = registrar.configitem(self.configtable)
         self.revsetpredicate = registrar.revsetpredicate()
+        self.templatekeyword = registrar.templatekeyword()
 
     def merge(self, other):
         self._uicallables.extend(other._uicallables)
@@ -48,6 +49,7 @@
         self._extcallables.extend(other._extcallables)
         self._repocallables.extend(other._repocallables)
         self.revsetpredicate._table.update(other.revsetpredicate._table)
+        self.templatekeyword._table.update(other.templatekeyword._table)
         self._commandwrappers.extend(other._commandwrappers)
         self._extcommandwrappers.extend(other._extcommandwrappers)
         self._functionwrappers.extend(other._functionwrappers)