[PATCH 2 of 5] perf: allow to specify the base of the merge in perfmergecalculate
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Thu May 23 12:47:56 EDT 2019
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at octobus.net>
# Date 1558612171 -7200
# Thu May 23 13:49:31 2019 +0200
# Node ID c5959a988d0d0142c62ab4a0bdd54732f18fc2c9
# Parent 041e1cfff879810c62afef3101db4e8b016a62a4
# EXP-Topic perf-mergecopies
# Available At https://bitbucket.org/octobus/mercurial-devel/
# hg pull https://bitbucket.org/octobus/mercurial-devel/ -r c5959a988d0d
perf: allow to specify the base of the merge in perfmergecalculate
We can now test the rebase case.
diff --git a/contrib/perf.py b/contrib/perf.py
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -926,6 +926,7 @@ def perfdirstatewrite(ui, repo, **opts):
[
(b'r', b'rev', b'.', b'rev to merge against'),
(b'', b'from', b'', b'rev to merge from'),
+ (b'', b'base', b'', b'the revision to use as base'),
] + formatteropts)
def perfmergecalculate(ui, repo, rev, **opts):
opts = _byteskwargs(opts)
@@ -940,7 +941,18 @@ def perfmergecalculate(ui, repo, rev, **
# prime that cache
wctx.dirty()
rctx = scmutil.revsingle(repo, rev, rev)
- ancestor = wctx.ancestor(rctx)
+ if opts['base']:
+ fromrev = scmutil.revsingle(repo, opts['base'])
+ ancestor = repo[fromrev]
+ else:
+ ancestor = wctx.ancestor(rctx)
+ def d():
+ # acceptremote is True because we don't want prompts in the middle of
+ # our benchmark
+ merge.calculateupdates(repo, wctx, rctx, [ancestor], False, False,
+ acceptremote=True, followcopies=True)
+ timer(d)
+ fm.end()
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