'
. ./test-lib.sh
+echo '[core] logallrefupdates = true' >>.git/config
+
test_expect_success \
'prepare a trivial repository' \
'echo Hello > A &&
- git-update-index --add A &&
+ git update-index --add A &&
git-commit -m "Initial commit." &&
- HEAD=$(git-rev-parse --verify HEAD)'
+ HEAD=$(git rev-parse --verify HEAD)'
SHA1=
test_expect_success \
'see if git show-ref works as expected' \
- 'git-branch a &&
- SHA1=$(< .git/refs/heads/a) &&
+ 'git branch a &&
+ SHA1=`cat .git/refs/heads/a` &&
echo "$SHA1 refs/heads/a" >expect &&
- git-show-ref a >result &&
+ git show-ref a >result &&
diff expect result'
test_expect_success \
'see if a branch still exists when packed' \
- 'git-branch b &&
- git-pack-refs &&
- rm .git/refs/heads/b &&
+ 'git branch b &&
+ git pack-refs --all &&
+ rm -f .git/refs/heads/b &&
echo "$SHA1 refs/heads/b" >expect &&
- git-show-ref b >result &&
+ git show-ref b >result &&
diff expect result'
test_expect_failure \
'git branch c/d should barf if branch c exists' \
- 'git-branch c &&
- git-pack-refs &&
+ 'git branch c &&
+ git pack-refs --all &&
rm .git/refs/heads/c &&
- git-branch c/d'
+ git branch c/d'
test_expect_success \
'see if a branch still exists after git pack-refs --prune' \
- 'git-branch e &&
- git-pack-refs --prune &&
+ 'git branch e &&
+ git pack-refs --all --prune &&
echo "$SHA1 refs/heads/e" >expect &&
- git-show-ref e >result &&
+ git show-ref e >result &&
diff expect result'
test_expect_failure \
'see if git pack-refs --prune remove ref files' \
- 'git-branch f &&
- git-pack-refs --prune &&
+ 'git branch f &&
+ git pack-refs --all --prune &&
ls .git/refs/heads/f'
test_expect_success \
'git branch g should work when git branch g/h has been deleted' \
- 'git-branch g/h &&
- git-pack-refs --prune &&
- git-branch -d g/h &&
- git-branch g &&
- git-pack-refs &&
- git-branch -d g'
+ 'git branch g/h &&
+ git pack-refs --all --prune &&
+ git branch -d g/h &&
+ git branch g &&
+ git pack-refs --all &&
+ git branch -d g'
+
+test_expect_failure \
+ 'git branch i/j/k should barf if branch i exists' \
+ 'git branch i &&
+ git pack-refs --all --prune &&
+ git branch i/j/k'
+
+test_expect_success \
+ 'test git branch k after branch k/l/m and k/lm have been deleted' \
+ 'git branch k/l &&
+ git branch k/lm &&
+ git branch -d k/l &&
+ git branch k/l/m &&
+ git branch -d k/l/m &&
+ git branch -d k/lm &&
+ git branch k'
+
+test_expect_success \
+ 'test git branch n after some branch deletion and pruning' \
+ 'git branch n/o &&
+ git branch n/op &&
+ git branch -d n/o &&
+ git branch n/o/p &&
+ git branch -d n/op &&
+ git pack-refs --all --prune &&
+ git branch -d n/o/p &&
+ git branch n'
+
+test_expect_success 'pack, prune and repack' '
+ git-tag foo &&
+ git pack-refs --all --prune &&
+ git show-ref >all-of-them &&
+ git pack-refs &&
+ git show-ref >again &&
+ diff all-of-them again
+'
test_done