changeset 34830:60802bba1090

eol: ensure the eol extensions is loaded when hooks run Similar to the change we did to the 'acl' extensions, we want to make sure the config items are registered before we run the hooks.
author Boris Feld <boris.feld@octobus.net>
date Sat, 14 Oct 2017 01:09:46 +0200
parents 120c5c155ba4
children 44c4ed4ad032
files hgext/eol.py
diffstat 1 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/eol.py	Sat Oct 14 01:16:03 2017 +0200
+++ b/hgext/eol.py	Sat Oct 14 01:09:46 2017 +0200
@@ -244,8 +244,22 @@
                   "at %s: %s\n") % (inst.args[1], inst.args[0]))
     return None
 
+def ensureenabled(ui):
+    """make sure the extension is enabled when used as hook
+
+    When eol is used through hooks, the extension is never formally loaded and
+    enabled. This has some side effect, for example the config declaration is
+    never loaded. This function ensure the extension is enabled when running
+    hooks.
+    """
+    if 'eol' in ui._knownconfig:
+        return
+    ui.setconfig('extensions', 'eol', '', source='internal')
+    extensions.loadall(ui, ['eol'])
+
 def _checkhook(ui, repo, node, headsonly):
     # Get revisions to check and touched files at the same time
+    ensureenabled(ui)
     files = set()
     revs = set()
     for rev in xrange(repo[node].rev(), len(repo)):