From: Johan Herland Date: Sun, 21 Oct 2012 10:40:31 +0000 (+0200) Subject: t1400-update-ref: Add test verifying bug with symrefs in delete_ref() X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=75c96e05cec5654912122cb2435e8c3f928a441d;p=git.git 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 Signed-off-by: Junio C Hamano --- diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh index 4fd83a667..f7ec203cf 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 &&