[PATCH 1 of 5] perf: add a --from flag to perfmergecalculate
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Thu May 23 16:47:55 UTC 2019
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at octobus.net>
# Date 1558603188 -7200
# Thu May 23 11:19:48 2019 +0200
# Node ID 041e1cfff879810c62afef3101db4e8b016a62a4
# Parent b162229ebe0de1cac21b8287ecee5f2ef0a9d530
# EXP-Topic perf-mergecopies
# Available At https://bitbucket.org/octobus/mercurial-devel/
# hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 041e1cfff879
perf: add a --from flag to perfmergecalculate
Before this change, `perfmergecalculate` was always benchmarking the merge of
the working copy with another revision. We can now benchmark the
`mergecalculate` call for any arbitrary pair of revision.
diff --git a/contrib/perf.py b/contrib/perf.py
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -923,16 +923,24 @@ def perfdirstatewrite(ui, repo, **opts):
fm.end()
@command(b'perfmergecalculate',
- [(b'r', b'rev', b'.', b'rev to merge against')] + formatteropts)
+ [
+ (b'r', b'rev', b'.', b'rev to merge against'),
+ (b'', b'from', b'', b'rev to merge from'),
+ ] + formatteropts)
def perfmergecalculate(ui, repo, rev, **opts):
opts = _byteskwargs(opts)
timer, fm = gettimer(ui, opts)
- wctx = repo[None]
+
+ if opts['from']:
+ fromrev = scmutil.revsingle(repo, opts['from'])
+ wctx = repo[fromrev]
+ else:
+ wctx = repo[None]
+ # we don't want working dir files to be stat'd in the benchmark, so
+ # prime that cache
+ wctx.dirty()
rctx = scmutil.revsingle(repo, rev, rev)
ancestor = wctx.ancestor(rctx)
- # we don't want working dir files to be stat'd in the benchmark, so prime
- # that cache
- wctx.dirty()
def d():
# acceptremote is True because we don't want prompts in the middle of
# our benchmark
More information about the Mercurial-devel
mailing list