comparison mercurial/hg.py @ 38798:d58958676b3c

extensions: add detailed loading information This lets you track down what exactly is happening during extension loading, and how long various steps took.
author Martijn Pieters <mj@zopatista.com>
date Wed, 01 Aug 2018 16:06:53 +0200
parents e06a10d3b926
children 143efea71c2a
comparison
equal deleted inserted replaced
38797:8751d1e2a7ff 38798:d58958676b3c
7 # GNU General Public License version 2 or any later version. 7 # GNU General Public License version 2 or any later version.
8 8
9 from __future__ import absolute_import 9 from __future__ import absolute_import
10 10
11 import errno 11 import errno
12 import functools
12 import hashlib 13 import hashlib
13 import os 14 import os
14 import shutil 15 import shutil
15 import stat 16 import stat
16 17
160 def _peerorrepo(ui, path, create=False, presetupfuncs=None, 161 def _peerorrepo(ui, path, create=False, presetupfuncs=None,
161 intents=None): 162 intents=None):
162 """return a repository object for the specified path""" 163 """return a repository object for the specified path"""
163 obj = _peerlookup(path).instance(ui, path, create, intents=intents) 164 obj = _peerlookup(path).instance(ui, path, create, intents=intents)
164 ui = getattr(obj, "ui", ui) 165 ui = getattr(obj, "ui", ui)
166 if ui.configbool('devel', 'debug.extensions'):
167 log = functools.partial(
168 ui.debug, 'debug.extensions: ', label='debug.extensions')
169 else:
170 log = lambda *a, **kw: None
165 for f in presetupfuncs or []: 171 for f in presetupfuncs or []:
166 f(ui, obj) 172 f(ui, obj)
173 log('- executing reposetup hooks\n')
167 for name, module in extensions.extensions(ui): 174 for name, module in extensions.extensions(ui):
175 log(' - running reposetup for %s\n' % (name,))
168 hook = getattr(module, 'reposetup', None) 176 hook = getattr(module, 'reposetup', None)
169 if hook: 177 if hook:
170 hook(ui, obj) 178 hook(ui, obj)
171 if not obj.local(): 179 if not obj.local():
172 for f in wirepeersetupfuncs: 180 for f in wirepeersetupfuncs: