blob: 7241fa694c9230c8aa2b13a06ff3807cc1ad7dcf [file] [log] [blame]
#!/bin/bash -ex
export GIT_COMMITTER_NAME="A U Thor"
export GIT_AUTHOR_NAME="A U Thor"
export GIT_COMMITTER_EMAIL="a.u.thor@example.com"
export GIT_AUTHOR_EMAIL="a.u.thor@example.com"
test_tick () {
# from git/t/test-lib.sh
if test -z "${test_tick+set}"
then
test_tick=1112911993
else
test_tick=$(($test_tick + 60))
fi
GIT_COMMITTER_DATE="$test_tick -0700"
GIT_AUTHOR_DATE="$test_tick -0700"
export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
}
git_commit () {
test_tick
git commit "$@"
}
git_merge () {
test_tick
git merge "$@"
}
test_tick
rm -rf .git *.txt ?
git init
echo "On master" >>master.txt
git add master.txt
git_commit -a -m "On master"
echo "On master" >>master.txt
git_commit -a -m "On master again"
git checkout -b a 6c8b137b1c652731597c89668f417b8695f28dd7
mkdir a
echo a1 >>a/a1.txt
git add a/a1.txt
git_commit -a -m "First a/a1"
echo a2 >>a/a2.txt
git add a/a2.txt
git_commit -a -m "First a/a2"
git merge master
echo a1 >>a/a1.txt
git add a/a1.txt
git_commit -a -m "Second a/a1"
git branch pa
echo a2 >>a/a2.txt
git add a/a2.txt
git_commit -a -m "Second a/a2"
git checkout -b b 58be4659bb571194ed4562d04b359d26216f526e
mkdir b
echo b1 >>b/b1.txt
git add b/b1.txt
git_commit -a -m "First b/b1"
echo b2 >>b/b2.txt
git add b/b2.txt
git_commit -a -m "First b/b2"
git merge a
echo b1 >>b/b1.txt
git add b/b1.txt
git_commit -a -m "Second b/b1"
echo b2 >>b/b2.txt
git add b/b2.txt
git_commit -a -m "Second b/b2"
rm -rf a b c master.txt
mkdir c
rm -f ./git/index
echo ref: refs/heads/c >.git/HEAD
echo c1 >>c/c1.txt
git add c/c1.txt
git_commit -a -m "First c/c1, no parent"
echo c2 >>c/c2.txt
git add c/c2.txt
git_commit -a -m "First c/c2"
git_merge a
echo c1 >>c/c1.txt
git add c/c2.txt
git_commit -a -m "Second c/c1"
echo c2 >>c/c2.txt
git add c/c2.txt
git_commit -a -m "Second c/c2"
git_merge b
git checkout -b d a
echo "a1" >>a/a1
git add a/a1
git_commit -a -m "Third a/a1"
git checkout -b e a
echo "a1" >>a/a1
git add a/a1
git_commit -a -m "Fourth a/a1"
git checkout master
git_merge c d e
git repack -d
git tag A a
git tag -a -m "An annotated tag" B a^
git repack -d
Bnth=B
for nth in 2nd 3rd 4th 5th 6th 7th 8th 9th 10th; do
git tag -a -m "An $nth level annotated tag" "B$nth" "$Bnth"
Bnth="B$nth"
done
git repack -d
git checkout -b f a
mkdir f
echo "an eff" >f/f
git add f/f
git commit -m "An eff"
git checkout -b g a
mkdir f
echo "an F" >f/f
git add f/f
git commit -m "An F"
git repack -d
git checkout -b symlink master
ln -s c/c1.txt symlink.txt
git add symlink.txt
git_commit -m "A symlink"
git checkout -b gitlink master
git submodule add "$(pwd)/.git" submodule
git_commit -m "A gitlink"
git repack -d
git pack-refs --all
gitk --all master