Skip to content

Instantly share code, notes, and snippets.

@avar
Last active March 9, 2017 14:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save avar/45cf288ce7cdc43e7395c6cbf9a98d68 to your computer and use it in GitHub Desktop.
Save avar/45cf288ce7cdc43e7395c6cbf9a98d68 to your computer and use it in GitHub Desktop.
#!/bin/bash
for i in $(seq 10 100); do
echo "$i ($(date)):"
git rev-list origin/master|perl -0777 -nE "srand($i); my @r = sort { rand() <=> rand() } split /\n/, \$_; for (0..8) { say qq[\$r\[\$_\]:\$r\[-\$_\]] }" >/tmp/commit-list
#cat /tmp/commit-list
echo ".. doing faster ($(date)):"
parallel -k -j 8 '
A=$(echo {} | cut -d: -f1)
B=$(echo {} | cut -d: -f2)
./git tag --contains $A --merged $B
./git tag --contains $B --merged $A
./git tag --contains $A --no-merged $B
./git tag --contains $B --no-merged $A
./git tag --contains $A --merged $B --no-merged $A
./git tag --contains $A --merged $B --no-merged $B
./git tag --contains $A --merged $A --no-merged $A
./git tag --contains $A --merged $A --no-merged $B
./git tag --contains $B --merged $B --no-merged $A
./git tag --contains $B --merged $B --no-merged $B
./git tag --contains $B --merged $A --no-merged $A
./git tag --contains $B --merged $A --no-merged $B
' ::: $(cat /tmp/commit-list) >/tmp/faster
echo ".. doing slower ($(date)):"
parallel -k -j 8 '
A=$(echo {} | cut -d: -f1)
B=$(echo {} | cut -d: -f2)
GIT_NO_TAG_ALGO=1 ./git tag --contains $A --merged $B
GIT_NO_TAG_ALGO=1 ./git tag --contains $B --merged $A
GIT_NO_TAG_ALGO=1 ./git tag --contains $A --no-merged $B
GIT_NO_TAG_ALGO=1 ./git tag --contains $B --no-merged $A
GIT_NO_TAG_ALGO=1 ./git tag --contains $A --merged $B --no-merged $A
GIT_NO_TAG_ALGO=1 ./git tag --contains $A --merged $B --no-merged $B
GIT_NO_TAG_ALGO=1 ./git tag --contains $A --merged $A --no-merged $A
GIT_NO_TAG_ALGO=1 ./git tag --contains $A --merged $A --no-merged $B
GIT_NO_TAG_ALGO=1 ./git tag --contains $B --merged $B --no-merged $A
GIT_NO_TAG_ALGO=1 ./git tag --contains $B --merged $B --no-merged $B
GIT_NO_TAG_ALGO=1 ./git tag --contains $B --merged $A --no-merged $A
GIT_NO_TAG_ALGO=1 ./git tag --contains $B --merged $A --no-merged $B
' ::: $(cat /tmp/commit-list) >/tmp/slower
diff -ru /tmp/faster /tmp/slower | tee /tmp/diff
if test -s /tmp/diff
then
echo "ZOMG Run $i has diffs" | tee -a /tmp/bad-runs
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment