Mercurial > hg
view contrib/revsetbenchmarks.sh @ 20791:8dd867bd67e1
backout: improve confusing 'cannot backout change on a different branch' abort
These days 'branch' usually refer to a named branch.
Instead, abort with 'cannot backout change that not is an ancestor'.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Mon, 24 Feb 2014 22:42:14 +0100 |
parents | 8c89433ccdcf |
children | 44e80bf2688f |
line wrap: on
line source
#!/bin/bash # Measure the performance of a list of revsets against multiple revisions # defined by parameter. Checkout one by one and run perfrevset with every # revset in the list to benchmark its performance. # # - First argument is a revset of mercurial own repo to runs against. # - Second argument is the file from which the revset array will be taken # If second argument is omitted read it from standard input # # You should run this from the root of your mercurial repository. # # This script also does one run of the current version of mercurial installed # to compare performance. HG="hg update" PERF="./hg perfrevset" BASE_PERF="hg perfrevset" TARGETS=$1 shift # read from a file or from standard output if [ $# -ne 0 ]; then readarray REVSETS < $1 else readarray REVSETS fi hg update --quiet echo "Starting time benchmarking" echo echo "Revsets to benchmark" echo "----------------------------" for (( j = 0; j < ${#REVSETS[@]}; j++ )); do echo "${j}) ${REVSETS[$j]}" done echo "----------------------------" echo # Benchmark baseline echo "Benchmarking baseline" for (( j = 0; j < ${#REVSETS[@]}; j++ )); do echo -n "${j}) " $BASE_PERF "${REVSETS[$j]}" done echo echo # Benchmark revisions for i in $(hg log --template='{rev}\n' --rev $TARGETS); do echo "----------------------------" echo -n "Revision: " hg log -r $i --template "{desc|firstline}" echo "----------------------------" $HG $i for (( j = 0; j < ${#REVSETS[@]}; j++ )); do echo -n "${j}) " $PERF "${REVSETS[$j]}" done echo "----------------------------" done $HG # Benchmark current code echo "Benchmarking current code" for (( j = 0; j < ${#REVSETS[@]}; j++ )); do echo -n "${j}) " $PERF "${REVSETS[$j]}" done echo echo "Time benchmarking finished"