diff options
Diffstat (limited to 'scripts/contrib/build-perf-test-wrapper.sh')
| -rwxr-xr-x | scripts/contrib/build-perf-test-wrapper.sh | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/scripts/contrib/build-perf-test-wrapper.sh b/scripts/contrib/build-perf-test-wrapper.sh index 234652d7ef..7b7e4dddc6 100755 --- a/scripts/contrib/build-perf-test-wrapper.sh +++ b/scripts/contrib/build-perf-test-wrapper.sh | |||
| @@ -29,7 +29,8 @@ Optional arguments: | |||
| 29 | -h show this help and exit. | 29 | -h show this help and exit. |
| 30 | -a ARCHIVE_DIR archive results tarball here, give an empty string to | 30 | -a ARCHIVE_DIR archive results tarball here, give an empty string to |
| 31 | disable tarball archiving (default: $archive_dir) | 31 | disable tarball archiving (default: $archive_dir) |
| 32 | -c COMMITISH test (checkout) this commit | 32 | -c COMMITISH test (checkout) this commit, <branch>:<commit> can be |
| 33 | specified to test specific commit of certain branch | ||
| 33 | -C GIT_REPO commit results into Git | 34 | -C GIT_REPO commit results into Git |
| 34 | -w WORK_DIR work dir for this script | 35 | -w WORK_DIR work dir for this script |
| 35 | (default: GIT_TOP_DIR/build-perf-test) | 36 | (default: GIT_TOP_DIR/build-perf-test) |
| @@ -90,15 +91,33 @@ fi | |||
| 90 | cd "$git_topdir" | 91 | cd "$git_topdir" |
| 91 | 92 | ||
| 92 | if [ -n "$commitish" ]; then | 93 | if [ -n "$commitish" ]; then |
| 93 | # Checkout correct revision | 94 | echo "Running git fetch" |
| 94 | echo "Checking out $commitish" | ||
| 95 | git fetch &> /dev/null | 95 | git fetch &> /dev/null |
| 96 | git checkout HEAD^0 &> /dev/null | 96 | git checkout HEAD^0 &> /dev/null |
| 97 | git branch -D $commitish &> /dev/null | 97 | |
| 98 | if ! git checkout -f $commitish &> /dev/null; then | 98 | # Handle <branch>:<commit> format |
| 99 | echo "Git checkout failed" | 99 | if echo "$commitish" | grep -q ":"; then |
| 100 | commit=`echo "$commitish" | cut -d":" -f2` | ||
| 101 | branch=`echo "$commitish" | cut -d":" -f1` | ||
| 102 | else | ||
| 103 | commit="$commitish" | ||
| 104 | branch="$commitish" | ||
| 105 | fi | ||
| 106 | |||
| 107 | echo "Checking out $commitish" | ||
| 108 | git branch -D $branch &> /dev/null | ||
| 109 | if ! git checkout -f $branch &> /dev/null; then | ||
| 110 | echo "ERROR: Git checkout failed" | ||
| 111 | exit 1 | ||
| 112 | fi | ||
| 113 | |||
| 114 | # Check that the specified branch really contains the commit | ||
| 115 | commit_hash=`git rev-parse --revs-only $commit --` | ||
| 116 | if [ -z "$commit_hash" -o "`git merge-base $branch $commit`" != "$commit_hash" ]; then | ||
| 117 | echo "ERROR: branch $branch does not contain commit $commit" | ||
| 100 | exit 1 | 118 | exit 1 |
| 101 | fi | 119 | fi |
| 120 | git reset --hard $commit > /dev/null | ||
| 102 | fi | 121 | fi |
| 103 | 122 | ||
| 104 | # Setup build environment | 123 | # Setup build environment |
