contrib/revsetbenchmarks.py
author Gregory Szorc <gregory.szorc@gmail.com>
Sun, 20 Apr 2014 15:16:29 -0700
changeset 21452 1517c0461b75
parent 21287 2d93b74335a2
child 21548 651d7548a744
permissions -rwxr-xr-x
run-tests: move some functionality to Test.tearDown()
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
     1
#!/usr/bin/env python
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
     2
20746
47fc466825da contrib: have the revset benchmark test script take a revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20745
diff changeset
     3
# Measure the performance of a list of revsets against multiple revisions
47fc466825da contrib: have the revset benchmark test script take a revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20745
diff changeset
     4
# defined by parameter. Checkout one by one and run perfrevset with every
47fc466825da contrib: have the revset benchmark test script take a revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20745
diff changeset
     5
# revset in the list to benchmark its performance.
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
     6
#
20747
8c89433ccdcf contrib: make revset benchmark script able to read from stdin
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20746
diff changeset
     7
# - First argument is a revset of mercurial own repo to runs against.
8c89433ccdcf contrib: make revset benchmark script able to read from stdin
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20746
diff changeset
     8
# - Second argument is the file from which the revset array will be taken
8c89433ccdcf contrib: make revset benchmark script able to read from stdin
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20746
diff changeset
     9
#   If second argument is omitted read it from standard input
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    10
#
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    11
# You should run this from the root of your mercurial repository.
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    12
#
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    13
# This script also does one run of the current version of mercurial installed
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    14
# to compare performance.
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    15
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
    16
import sys
20893
b5de9dde181c revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents: 20855
diff changeset
    17
from subprocess import check_call, Popen, CalledProcessError, STDOUT, PIPE
21287
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    18
# cannot use argparse, python 2.7 only
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    19
from optparse import OptionParser
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    20
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    21
20850
d0c2535c7aba revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20849
diff changeset
    22
20893
b5de9dde181c revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents: 20855
diff changeset
    23
def check_output(*args, **kwargs):
b5de9dde181c revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents: 20855
diff changeset
    24
    kwargs.setdefault('stderr', PIPE)
b5de9dde181c revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents: 20855
diff changeset
    25
    kwargs.setdefault('stdout', PIPE)
b5de9dde181c revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents: 20855
diff changeset
    26
    proc = Popen(*args, **kwargs)
b5de9dde181c revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents: 20855
diff changeset
    27
    output, error = proc.communicate()
b5de9dde181c revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents: 20855
diff changeset
    28
    if proc.returncode != 0:
21202
c04e5e937139 revsetbenchmark: fix error raising
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20893
diff changeset
    29
        raise CalledProcessError(proc.returncode, ' '.join(args[0]))
20893
b5de9dde181c revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com>
parents: 20855
diff changeset
    30
    return output
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
    31
20850
d0c2535c7aba revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20849
diff changeset
    32
def update(rev):
d0c2535c7aba revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20849
diff changeset
    33
    """update the repo to a revision"""
d0c2535c7aba revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20849
diff changeset
    34
    try:
d0c2535c7aba revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20849
diff changeset
    35
        check_call(['hg', 'update', '--quiet', '--check', str(rev)])
d0c2535c7aba revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20849
diff changeset
    36
    except CalledProcessError, exc:
d0c2535c7aba revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20849
diff changeset
    37
        print >> sys.stderr, 'update to revision %s failed, aborting' % rev
d0c2535c7aba revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20849
diff changeset
    38
        sys.exit(exc.returncode)
d0c2535c7aba revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20849
diff changeset
    39
20851
4130ec938c84 revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20850
diff changeset
    40
def perf(revset):
4130ec938c84 revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20850
diff changeset
    41
    """run benchmark for this very revset"""
4130ec938c84 revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20850
diff changeset
    42
    try:
20854
bad5399c5d5f revsetbenchmark: retrieve the benchmark value in python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20853
diff changeset
    43
        output = check_output(['./hg',
bad5399c5d5f revsetbenchmark: retrieve the benchmark value in python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20853
diff changeset
    44
                               '--config',
bad5399c5d5f revsetbenchmark: retrieve the benchmark value in python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20853
diff changeset
    45
                               'extensions.perf=contrib/perf.py',
bad5399c5d5f revsetbenchmark: retrieve the benchmark value in python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20853
diff changeset
    46
                               'perfrevset',
bad5399c5d5f revsetbenchmark: retrieve the benchmark value in python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20853
diff changeset
    47
                               revset],
bad5399c5d5f revsetbenchmark: retrieve the benchmark value in python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20853
diff changeset
    48
                               stderr=STDOUT)
bad5399c5d5f revsetbenchmark: retrieve the benchmark value in python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20853
diff changeset
    49
        output = output.lstrip('!') # remove useless ! in this context
bad5399c5d5f revsetbenchmark: retrieve the benchmark value in python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20853
diff changeset
    50
        return output.strip()
20851
4130ec938c84 revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20850
diff changeset
    51
    except CalledProcessError, exc:
4130ec938c84 revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20850
diff changeset
    52
        print >> sys.stderr, 'abort: cannot run revset benchmark'
4130ec938c84 revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20850
diff changeset
    53
        sys.exit(exc.returncode)
4130ec938c84 revsetbenchmark: convert performance call to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20850
diff changeset
    54
20852
b2353501d6dc revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20851
diff changeset
    55
def printrevision(rev):
b2353501d6dc revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20851
diff changeset
    56
    """print data about a revision"""
b2353501d6dc revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20851
diff changeset
    57
    sys.stdout.write("Revision: ")
b2353501d6dc revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20851
diff changeset
    58
    sys.stdout.flush()
b2353501d6dc revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20851
diff changeset
    59
    check_call(['hg', 'log', '--rev', str(rev), '--template',
b2353501d6dc revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20851
diff changeset
    60
               '{desc|firstline}\n'])
b2353501d6dc revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20851
diff changeset
    61
20853
95293cf67871 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20852
diff changeset
    62
def getrevs(spec):
95293cf67871 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20852
diff changeset
    63
    """get the list of rev matched by a revset"""
95293cf67871 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20852
diff changeset
    64
    try:
95293cf67871 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20852
diff changeset
    65
        out = check_output(['hg', 'log', '--template={rev}\n', '--rev', spec])
95293cf67871 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20852
diff changeset
    66
    except CalledProcessError, exc:
95293cf67871 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20852
diff changeset
    67
        print >> sys.stderr, "abort, can't get revision from %s" % spec
95293cf67871 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20852
diff changeset
    68
        sys.exit(exc.returncode)
95293cf67871 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20852
diff changeset
    69
    return [r for r in out.split() if r]
95293cf67871 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20852
diff changeset
    70
95293cf67871 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20852
diff changeset
    71
21287
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    72
parser = OptionParser(usage="usage: %prog [options] <revs>")
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    73
parser.add_option("-f", "--file",
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    74
                  help="read revset from FILE", metavar="FILE")
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    75
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    76
(options, args) = parser.parse_args()
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    77
21286
f0f810096842 revsetbenchmark: add a usage message when no arguments are passed
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21202
diff changeset
    78
if len(sys.argv) < 2:
21287
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    79
    parser.print_help()
21286
f0f810096842 revsetbenchmark: add a usage message when no arguments are passed
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21202
diff changeset
    80
    sys.exit(255)
f0f810096842 revsetbenchmark: add a usage message when no arguments are passed
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21202
diff changeset
    81
21287
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    82
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    83
target_rev = args[0]
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    84
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
    85
revsetsfile = sys.stdin
21287
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    86
if options.file:
2d93b74335a2 revsetbenchmark: use optparse to retrieve argument
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21286
diff changeset
    87
    revsetsfile = open(options.file)
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    88
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
    89
revsets = [l.strip() for l in revsetsfile]
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    90
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
    91
print "Revsets to benchmark"
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
    92
print "----------------------------"
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    93
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
    94
for idx, rset in enumerate(revsets):
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
    95
    print "%i) %s" % (idx, rset)
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    96
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
    97
print "----------------------------"
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
    98
print
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    99
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
   100
20853
95293cf67871 revsetbenchmark: get revision to benchmark in a function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20852
diff changeset
   101
revs = getrevs(target_rev)
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
   102
20855
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   103
results = []
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
   104
for r in revs:
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
   105
    print "----------------------------"
20852
b2353501d6dc revsetbenchmark: convert revision display to proper subprocesscall
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20851
diff changeset
   106
    printrevision(r)
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
   107
    print "----------------------------"
20850
d0c2535c7aba revsetbenchmark: convert update to proper subprocess call
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20849
diff changeset
   108
    update(r)
20855
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   109
    res = []
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   110
    results.append(res)
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
   111
    for idx, rset in enumerate(revsets):
20855
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   112
        data = perf(rset)
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   113
        res.append(data)
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   114
        print "%i)" % idx, data
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   115
        sys.stdout.flush()
20848
11a9393609c8 revsetbenchmark: simplify and convert the script to python
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20847
diff changeset
   116
    print "----------------------------"
20745
5fb7c36d751f contrib: added revset performance benchmarking script
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
   117
20855
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   118
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   119
print """
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   120
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   121
Result by revset
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   122
================
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   123
"""
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   124
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   125
print 'Revision:', revs
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   126
for idx, rev in enumerate(revs):
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   127
    sys.stdout.write('%i) ' % idx)
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   128
    sys.stdout.flush()
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   129
    printrevision(rev)
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   130
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   131
print
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   132
print
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   133
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   134
for ridx, rset in enumerate(revsets):
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   135
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   136
    print "revset #%i: %s" % (ridx, rset)
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   137
    for idx, data in enumerate(results):
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   138
        print '%i) %s' % (idx, data[ridx])
dfad9bb23ab4 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20854
diff changeset
   139
    print