Mercurial > public > mercurial-scm > hg
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: |