Show More
@@ -9,6 +9,7 b' from __future__ import absolute_import' | |||||
9 |
|
9 | |||
10 | import codecs |
|
10 | import codecs | |
11 | import collections |
|
11 | import collections | |
|
12 | import contextlib | |||
12 | import difflib |
|
13 | import difflib | |
13 | import errno |
|
14 | import errno | |
14 | import glob |
|
15 | import glob | |
@@ -1089,8 +1090,21 b' def debugdiscovery(ui, repo, remoteurl=b' | |||||
1089 |
|
1090 | |||
1090 | remoterevs, _checkout = hg.addbranchrevs(repo, remote, branches, revs=None) |
|
1091 | remoterevs, _checkout = hg.addbranchrevs(repo, remote, branches, revs=None) | |
1091 | localrevs = opts[b'rev'] |
|
1092 | localrevs = opts[b'rev'] | |
1092 | with util.timedcm('debug-discovery') as t: |
|
1093 | ||
1093 | common, hds = doit(localrevs, remoterevs) |
|
1094 | fm = ui.formatter(b'debugdiscovery', opts) | |
|
1095 | if fm.strict_format: | |||
|
1096 | ||||
|
1097 | @contextlib.contextmanager | |||
|
1098 | def may_capture_output(): | |||
|
1099 | ui.pushbuffer() | |||
|
1100 | yield | |||
|
1101 | data[b'output'] = ui.popbuffer() | |||
|
1102 | ||||
|
1103 | else: | |||
|
1104 | may_capture_output = util.nullcontextmanager | |||
|
1105 | with may_capture_output(): | |||
|
1106 | with util.timedcm('debug-discovery') as t: | |||
|
1107 | common, hds = doit(localrevs, remoterevs) | |||
1094 |
|
1108 | |||
1095 | # compute all statistics |
|
1109 | # compute all statistics | |
1096 | heads_common = set(common) |
|
1110 | heads_common = set(common) | |
@@ -1141,7 +1155,6 b' def debugdiscovery(ui, repo, remoteurl=b' | |||||
1141 | data[b'nb-ini_und-common'] = len(common_initial_undecided) |
|
1155 | data[b'nb-ini_und-common'] = len(common_initial_undecided) | |
1142 | data[b'nb-ini_und-missing'] = len(missing_initial_undecided) |
|
1156 | data[b'nb-ini_und-missing'] = len(missing_initial_undecided) | |
1143 |
|
1157 | |||
1144 | fm = ui.formatter(b'debugdiscovery', opts) |
|
|||
1145 | fm.startitem() |
|
1158 | fm.startitem() | |
1146 | fm.data(**pycompat.strkwargs(data)) |
|
1159 | fm.data(**pycompat.strkwargs(data)) | |
1147 | # display discovery summary |
|
1160 | # display discovery summary |
@@ -178,6 +178,11 b' class _nullconverter(object):' | |||||
178 |
|
178 | |||
179 |
|
179 | |||
180 | class baseformatter(object): |
|
180 | class baseformatter(object): | |
|
181 | ||||
|
182 | # set to True if the formater output a strict format that does not support | |||
|
183 | # arbitrary output in the stream. | |||
|
184 | strict_format = False | |||
|
185 | ||||
181 | def __init__(self, ui, topic, opts, converter): |
|
186 | def __init__(self, ui, topic, opts, converter): | |
182 | self._ui = ui |
|
187 | self._ui = ui | |
183 | self._topic = topic |
|
188 | self._topic = topic | |
@@ -418,6 +423,9 b' class cborformatter(baseformatter):' | |||||
418 |
|
423 | |||
419 |
|
424 | |||
420 | class jsonformatter(baseformatter): |
|
425 | class jsonformatter(baseformatter): | |
|
426 | ||||
|
427 | strict_format = True | |||
|
428 | ||||
421 | def __init__(self, ui, out, topic, opts): |
|
429 | def __init__(self, ui, out, topic, opts): | |
422 | baseformatter.__init__(self, ui, topic, opts, _nullconverter) |
|
430 | baseformatter.__init__(self, ui, topic, opts, _nullconverter) | |
423 | self._out = out |
|
431 | self._out = out |
@@ -1734,13 +1734,6 b' Test -T json output' | |||||
1734 | > --local-as-revs 'first(heads(all()), 25)' \ |
|
1734 | > --local-as-revs 'first(heads(all()), 25)' \ | |
1735 | > --remote-as-revs 'last(heads(all()), 25)' \ |
|
1735 | > --remote-as-revs 'last(heads(all()), 25)' \ | |
1736 | > --config devel.discovery.randomize=false |
|
1736 | > --config devel.discovery.randomize=false | |
1737 | query 1; heads |
|
|||
1738 | searching for changes |
|
|||
1739 | taking quick initial sample |
|
|||
1740 | query 2; still undecided: 375, sample size is: 81 |
|
|||
1741 | sampling from both directions |
|
|||
1742 | query 3; still undecided: 3, sample size is: 3 |
|
|||
1743 | 3 total queries in *s (glob) |
|
|||
1744 | [ |
|
1737 | [ | |
1745 | { |
|
1738 | { | |
1746 | "elapsed": *, (glob) |
|
1739 | "elapsed": *, (glob) | |
@@ -1763,6 +1756,7 b' Test -T json output' | |||||
1763 | "nb-revs": 400, |
|
1756 | "nb-revs": 400, | |
1764 | "nb-revs-common": 300, |
|
1757 | "nb-revs-common": 300, | |
1765 | "nb-revs-missing": 100, |
|
1758 | "nb-revs-missing": 100, | |
|
1759 | "output": "query 1; heads\nsearching for changes\ntaking quick initial sample\nquery 2; still undecided: 375, sample size is: 81\nsampling from both directions\nquery 3; still undecided: 3, sample size is: 3\n3 total queries in *s\n", (glob) | |||
1766 | "total-roundtrips": 3 |
|
1760 | "total-roundtrips": 3 | |
1767 | } |
|
1761 | } | |
1768 | ] |
|
1762 | ] |
General Comments 0
You need to be logged in to leave comments.
Login now