From f5637549a7eb93883839de01399418e10bf81768 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 17 Oct 2008 15:56:11 -0700 Subject: [PATCH] demonstrate breakage of detached checkout with symbolic link HEAD When core.prefersymlinkrefs is in use, detaching the HEAD by checkout incorrectly clobbers the tip of the current branch. Signed-off-by: Junio C Hamano --- t/t7201-co.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/t/t7201-co.sh b/t/t7201-co.sh index ee2cab6bb2..3f70adaf5a 100755 --- a/t/t7201-co.sh +++ b/t/t7201-co.sh @@ -339,6 +339,18 @@ test_expect_success 'checkout w/--track from non-branch HEAD fails' ' test "z$(git rev-parse master^0)" = "z$(git rev-parse HEAD)" ' +test_expect_failure 'detach a symbolic link HEAD' ' + git checkout master && + git config --bool core.prefersymlinkrefs yes && + git checkout side && + git checkout master && + it=$(git symbolic-ref HEAD) && + test "z$it" = zrefs/heads/master && + here=$(git rev-parse --verify refs/heads/master) && + git checkout side^ && + test "z$(git rev-parse --verify refs/heads/master)" = "z$here" +' + test_expect_success 'checkout an unmerged path should fail' ' rm -f .git/index && O=$(echo original | git hash-object -w --stdin) &&