diff options
author | Johan Herland <johan@herland.net> | 2012-10-21 12:40:31 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-10-21 12:07:58 -0700 |
commit | 75c96e05cec5654912122cb2435e8c3f928a441d (patch) | |
tree | f0e151eb28a90819daabc2d86b65f3ebf43539d5 /t/t1400-update-ref.sh | |
parent | 13baa9fe866f63311af5a5ee318beddb16eb5df4 (diff) | |
download | git-75c96e05cec5654912122cb2435e8c3f928a441d.tar.gz |
t1400-update-ref: Add test verifying bug with symrefs in delete_ref()
When deleting a ref through a symref (e.g. using 'git update-ref -d HEAD'
to delete refs/heads/master), we currently fail to remove the packed
version of that ref. This testcase demonstrates the bug.
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t1400-update-ref.sh')
-rwxr-xr-x | t/t1400-update-ref.sh | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh index 4fd83a667a..f7ec203cfb 100755 --- a/t/t1400-update-ref.sh +++ b/t/t1400-update-ref.sh @@ -74,6 +74,24 @@ test_expect_success "delete $m (by HEAD)" ' ' rm -f .git/$m +test_expect_success \ + "create $m (by HEAD)" \ + "git update-ref HEAD $A && + test $A"' = $(cat .git/'"$m"')' +test_expect_success \ + "pack refs" \ + "git pack-refs --all" +test_expect_success \ + "move $m (by HEAD)" \ + "git update-ref HEAD $B $A && + test $B"' = $(cat .git/'"$m"')' +test_expect_failure "delete $m (by HEAD) should remove both packed and loose $m" ' + git update-ref -d HEAD $B && + ! grep "$m" .git/packed-refs && + ! test -f .git/$m +' +rm -f .git/$m + cp -f .git/HEAD .git/HEAD.orig test_expect_success "delete symref without dereference" ' git update-ref --no-deref -d HEAD && |