deploy/clonebench.sh

bd49b87fce895e9f0a7588152548fb6e1821ac7d
gitbay/deploy/clonebench.sh history · blame · raw

24 lines · 690 bytes · executable

 1#!/bin/sh
 2# clonebench.sh <clone-url> <n>: start n full bare clones of <clone-url>
 3# at once and print each one's wall time and outcome, then the total.
 4# Run from a machine other than the server, against a public repository.
 5set -eu
 6url=$1
 7n=$2
 8dir=$(mktemp -d)
 9trap 'rm -rf "$dir"' EXIT
10start=$(date +%s)
11i=1
12while [ "$i" -le "$n" ]; do
13    (
14        s=$(date +%s)
15        if git clone --quiet --bare "$url" "$dir/$i.git" 2>"$dir/$i.err"; then
16            echo "$i ok $(( $(date +%s) - s ))s"
17        else
18            echo "$i failed $(( $(date +%s) - s ))s: $(head -n 1 "$dir/$i.err")"
19        fi
20    ) &
21    i=$((i + 1))
22done
23wait
24echo "total $(( $(date +%s) - start ))s for $n clones"