Show More
@@ -1153,6 +1153,54 def perftemplating(ui, repo, testedtempl | |||||
1153 | timer(format) |
|
1153 | timer(format) | |
1154 | fm.end() |
|
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 | @command(b'perfcca', formatteropts) |
|
1204 | @command(b'perfcca', formatteropts) | |
1157 | def perfcca(ui, repo, **opts): |
|
1205 | def perfcca(ui, repo, **opts): | |
1158 | opts = _byteskwargs(opts) |
|
1206 | opts = _byteskwargs(opts) |
@@ -83,6 +83,9 perfstatus | |||||
83 | perffncachewrite |
|
83 | perffncachewrite | |
84 | (no help text available) |
|
84 | (no help text available) | |
85 | perfheads (no help text available) |
|
85 | perfheads (no help text available) | |
|
86 | perfhelper-tracecopies | |||
|
87 | find statistic about potential parameters for the | |||
|
88 | 'perftracecopies' | |||
86 | perfindex (no help text available) |
|
89 | perfindex (no help text available) | |
87 | perflinelogedits |
|
90 | perflinelogedits | |
88 | (no help text available) |
|
91 | (no help text available) |
General Comments 0
You need to be logged in to leave comments.
Login now