# HG changeset patch # User Pierre-Yves David # Date 2014-04-29 21:12:32 # Node ID ea3d75ebea6dba458f6f10b6e713e06f7bbc251b # Parent 651d7548a744fd8f47827131a0373a2658bdb19a revsetbenchmark: support for running on other repo We add a -R/--repo option to run the benchmarks on another repository. This is very useful as some repository are bigger/more interesting than the mercurial one. diff --git a/contrib/revsetbenchmarks.py b/contrib/revsetbenchmarks.py --- a/contrib/revsetbenchmarks.py +++ b/contrib/revsetbenchmarks.py @@ -38,16 +38,19 @@ def update(rev): print >> sys.stderr, 'update to revision %s failed, aborting' % rev sys.exit(exc.returncode) -def perf(revset): +def perf(revset, target=None): """run benchmark for this very revset""" try: - output = check_output(['./hg', - '--config', - 'extensions.perf=' - + os.path.join(contribdir, 'perf.py'), - 'perfrevset', - revset], - stderr=STDOUT) + cmd = ['./hg', + '--config', + 'extensions.perf=' + + os.path.join(contribdir, 'perf.py'), + 'perfrevset', + revset] + if target is not None: + cmd.append('-R') + cmd.append(target) + output = check_output(cmd, stderr=STDOUT) output = output.lstrip('!') # remove useless ! in this context return output.strip() except CalledProcessError, exc: @@ -74,6 +77,8 @@ def getrevs(spec): parser = OptionParser(usage="usage: %prog [options] ") parser.add_option("-f", "--file", help="read revset from FILE", metavar="FILE") +parser.add_option("-R", "--repo", + help="run benchmark on REPO", metavar="REPO") (options, args) = parser.parse_args() @@ -113,7 +118,7 @@ for r in revs: res = [] results.append(res) for idx, rset in enumerate(revsets): - data = perf(rset) + data = perf(rset, target=options.repo) res.append(data) print "%i)" % idx, data sys.stdout.flush()