Mercurial > hg
changeset 42316:c07dcf7a0247
exthelper: add some semi-useful trace logs
It'd be nice to make the trace functions a little better-named in the output,
but I'm not sure how much better we can do without overhead. This at least
lets you see if a single reposetup function is eating all the time or if it's
spread over all of them. I needed this because Google's uber-extension has a
long load time and I wasn't sure where the problem was.
Differential Revision: https://phab.mercurial-scm.org/D6381
author | Augie Fackler <augie@google.com> |
---|---|
date | Wed, 15 May 2019 17:18:57 -0400 |
parents | c77857693005 |
children | 70845eb656a9 |
files | mercurial/exthelper.py |
diffstat | 1 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/exthelper.py Wed May 15 23:26:05 2019 -0700 +++ b/mercurial/exthelper.py Wed May 15 17:18:57 2019 -0400 @@ -15,9 +15,12 @@ commands, error, extensions, + pycompat, registrar, ) +from hgdemandimport import tracing + class exthelper(object): """Helper for modular extension setup @@ -135,7 +138,8 @@ for cont, funcname, wrapper in self._functionwrappers: extensions.wrapfunction(cont, funcname, wrapper) for c in self._uicallables: - c(ui) + with tracing.log(b'finaluisetup: %s', pycompat.sysbytes(repr(c))): + c(ui) def finaluipopulate(self, ui): """Method to be used as the extension uipopulate @@ -175,7 +179,8 @@ entry[1].append(opt) for c in self._extcallables: - c(ui) + with tracing.log(b'finalextsetup: %s', pycompat.sysbytes(repr(c))): + c(ui) def finalreposetup(self, ui, repo): """Method to be used as the extension reposetup @@ -187,7 +192,8 @@ - Changes to repo.__class__, repo.dirstate.__class__ """ for c in self._repocallables: - c(ui, repo) + with tracing.log(b'finalreposetup: %s', pycompat.sysbytes(repr(c))): + c(ui, repo) def uisetup(self, call): """Decorated function will be executed during uisetup