comparison mercurial/debugcommands.py @ 46065:44a52048c6d6

debugdiscovery: move various computation earlier We are about to add more data to debug discovery (eg: data bout the initial undecided set, number of roundtrip, etc). So we start by cleaning up the code by spliting some computation and some display related preparation. Differential Revision: https://phab.mercurial-scm.org/D9524
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 06 Dec 2020 14:45:04 +0100
parents 24751551fe64
children 3ca9d26c5984
comparison
equal deleted inserted replaced
46064:24751551fe64 46065:44a52048c6d6
1015 localrevs = opts[b'rev'] 1015 localrevs = opts[b'rev']
1016 with util.timedcm('debug-discovery') as t: 1016 with util.timedcm('debug-discovery') as t:
1017 common, hds = doit(localrevs, remoterevs) 1017 common, hds = doit(localrevs, remoterevs)
1018 1018
1019 # compute all statistics 1019 # compute all statistics
1020 common = set(common) 1020 heads_common = set(common)
1021 rheads = set(hds) 1021 heads_remote = set(hds)
1022 lheads = set(repo.heads()) 1022 heads_local = set(repo.heads())
1023 # note: they cannot be a local or remote head that is in common and not
1024 # itself a head of common.
1025 heads_common_local = heads_common & heads_local
1026 heads_common_remote = heads_common & heads_remote
1027 heads_common_both = heads_common & heads_remote & heads_local
1028
1029 all = repo.revs(b'all()')
1030 common = repo.revs(b'::%ln', common)
1031 missing = repo.revs(b'not ::%ld', common)
1032 assert len(common) + len(missing) == len(all)
1023 1033
1024 data = {} 1034 data = {}
1025 data[b'elapsed'] = t.elapsed 1035 data[b'elapsed'] = t.elapsed
1026 data[b'nb-common-heads'] = len(common) 1036 data[b'nb-common-heads'] = len(heads_common)
1027 data[b'nb-common-heads-local'] = len(common & lheads) 1037 data[b'nb-common-heads-local'] = len(heads_common_local)
1028 data[b'nb-common-heads-remote'] = len(common & rheads) 1038 data[b'nb-common-heads-remote'] = len(heads_common_remote)
1029 data[b'nb-common-heads-both'] = len(common & rheads & lheads) 1039 data[b'nb-common-heads-both'] = len(heads_common_both)
1030 data[b'nb-head-local'] = len(lheads) 1040 data[b'nb-head-local'] = len(heads_local)
1031 data[b'nb-head-local-missing'] = ( 1041 data[b'nb-head-local-missing'] = len(heads_local) - len(heads_common_local)
1032 data[b'nb-head-local'] - data[b'nb-common-heads-local'] 1042 data[b'nb-head-remote'] = len(heads_remote)
1033 ) 1043 data[b'nb-head-remote-unknown'] = len(heads_remote) - len(
1034 data[b'nb-head-remote'] = len(rheads) 1044 heads_common_remote
1035 data[b'nb-head-remote-unknown'] = ( 1045 )
1036 data[b'nb-head-remote'] - data[b'nb-common-heads-remote'] 1046 data[b'nb-revs'] = len(all)
1037 ) 1047 data[b'nb-revs-common'] = len(common)
1038 data[b'nb-revs'] = len(repo.revs(b'all()')) 1048 data[b'nb-revs-missing'] = len(missing)
1039 data[b'nb-revs-common'] = len(repo.revs(b'::%ln', common))
1040 data[b'nb-revs-missing'] = data[b'nb-revs'] - data[b'nb-revs-common']
1041 1049
1042 # display discovery summary 1050 # display discovery summary
1043 ui.writenoi18n(b"elapsed time: %(elapsed)f seconds\n" % data) 1051 ui.writenoi18n(b"elapsed time: %(elapsed)f seconds\n" % data)
1044 ui.writenoi18n(b"heads summary:\n") 1052 ui.writenoi18n(b"heads summary:\n")
1045 ui.writenoi18n(b" total common heads: %(nb-common-heads)9d\n" % data) 1053 ui.writenoi18n(b" total common heads: %(nb-common-heads)9d\n" % data)
1068 ui.writenoi18n(b" common: %(nb-revs-common)9d\n" % data) 1076 ui.writenoi18n(b" common: %(nb-revs-common)9d\n" % data)
1069 ui.writenoi18n(b" missing: %(nb-revs-missing)9d\n" % data) 1077 ui.writenoi18n(b" missing: %(nb-revs-missing)9d\n" % data)
1070 1078
1071 if ui.verbose: 1079 if ui.verbose:
1072 ui.writenoi18n( 1080 ui.writenoi18n(
1073 b"common heads: %s\n" % b" ".join(sorted(short(n) for n in common)) 1081 b"common heads: %s\n"
1082 % b" ".join(sorted(short(n) for n in heads_common))
1074 ) 1083 )
1075 1084
1076 1085
1077 _chunksize = 4 << 10 1086 _chunksize = 4 << 10
1078 1087