##// END OF EJS Templates
perf: add a new `perfhelper-tracecopies` command...
Boris Feld -
r40727:a65fe13d default
parent child Browse files
Show More
@@ -1153,6 +1153,54 b' def perftemplating(ui, repo, testedtempl'
1153 1153 timer(format)
1154 1154 fm.end()
1155 1155
1156 @command(b'perfhelper-tracecopies', formatteropts +
1157 [
1158 (b'r', b'revs', [], b'restrict search to these revisions'),
1159 ])
1160 def perfhelpertracecopies(ui, repo, revs=[], **opts):
1161 """find statistic about potential parameters for the `perftracecopies`
1162
1163 This command find source-destination pair relevant for copytracing testing.
1164 It report value for some of the parameters that impact copy tracing time.
1165 """
1166 opts = _byteskwargs(opts)
1167 fm = ui.formatter(b'perf', opts)
1168 header = '%12s %12s %12s %12s\n'
1169 output = ("%(source)12s %(destination)12s "
1170 "%(nbrevs)12d %(nbmissingfiles)12d\n")
1171 fm.plain(header % ("source", "destination", "nb-revs", "nb-files"))
1172
1173 if not revs:
1174 revs = ['all()']
1175 revs = scmutil.revrange(repo, revs)
1176
1177 roi = repo.revs('merge() and %ld', revs)
1178 for r in roi:
1179 ctx = repo[r]
1180 p1 = ctx.p1().rev()
1181 p2 = ctx.p2().rev()
1182 bases = repo.changelog._commonancestorsheads(p1, p2)
1183 for p in (p1, p2):
1184 for b in bases:
1185 base = repo[b]
1186 parent = repo[p]
1187 missing = copies._computeforwardmissing(base, parent)
1188 if not missing:
1189 continue
1190 fm.startitem()
1191 data = {
1192 b'source': base.hex(),
1193 b'destination': parent.hex(),
1194 b'nbrevs': len(repo.revs('%d::%d', b, p)),
1195 b'nbmissingfiles': len(missing),
1196 }
1197 fm.data(**data)
1198 out = data.copy()
1199 out['source'] = fm.hexfunc(base.node())
1200 out['destination'] = fm.hexfunc(parent.node())
1201 fm.plain(output % out)
1202 fm.end()
1203
1156 1204 @command(b'perfcca', formatteropts)
1157 1205 def perfcca(ui, repo, **opts):
1158 1206 opts = _byteskwargs(opts)
@@ -83,6 +83,9 b' perfstatus'
83 83 perffncachewrite
84 84 (no help text available)
85 85 perfheads (no help text available)
86 perfhelper-tracecopies
87 find statistic about potential parameters for the
88 'perftracecopies'
86 89 perfindex (no help text available)
87 90 perflinelogedits
88 91 (no help text available)
General Comments 0
You need to be logged in to leave comments. Login now