Mercurial > public > mercurial-scm > hg-stable
diff mercurial/debugcommands.py @ 46782:67a2ecea8bd9
debugdiscovery: also integrate the discovery output in the json one
We add a way for formatter to informs code that free output is unwanted, and we
incorporate it in the json output.
Differential Revision: https://phab.mercurial-scm.org/D10224
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 15 Mar 2021 17:09:42 +0100 |
parents | 3a8cf5b9c820 |
children | b6ac612445e0 |
line wrap: on
line diff
--- a/mercurial/debugcommands.py Mon Mar 15 16:55:03 2021 +0100 +++ b/mercurial/debugcommands.py Mon Mar 15 17:09:42 2021 +0100 @@ -9,6 +9,7 @@ import codecs import collections +import contextlib import difflib import errno import glob @@ -1089,8 +1090,21 @@ remoterevs, _checkout = hg.addbranchrevs(repo, remote, branches, revs=None) localrevs = opts[b'rev'] - with util.timedcm('debug-discovery') as t: - common, hds = doit(localrevs, remoterevs) + + fm = ui.formatter(b'debugdiscovery', opts) + if fm.strict_format: + + @contextlib.contextmanager + def may_capture_output(): + ui.pushbuffer() + yield + data[b'output'] = ui.popbuffer() + + else: + may_capture_output = util.nullcontextmanager + with may_capture_output(): + with util.timedcm('debug-discovery') as t: + common, hds = doit(localrevs, remoterevs) # compute all statistics heads_common = set(common) @@ -1141,7 +1155,6 @@ data[b'nb-ini_und-common'] = len(common_initial_undecided) data[b'nb-ini_und-missing'] = len(missing_initial_undecided) - fm = ui.formatter(b'debugdiscovery', opts) fm.startitem() fm.data(**pycompat.strkwargs(data)) # display discovery summary