| #!/bin/sh |
| # |
| # Copyright (c) 2007 Junio C Hamano |
| |
| test_description='git checkout to switch between branches with symlink<->dir' |
| |
| GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main |
| export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME |
| |
| TEST_PASSES_SANITIZE_LEAK=true |
| . ./test-lib.sh |
| |
| test_expect_success setup ' |
| |
| mkdir frotz && |
| echo hello >frotz/filfre && |
| git add frotz/filfre && |
| test_tick && |
| git commit -m "main has file frotz/filfre" && |
| |
| git branch side && |
| |
| echo goodbye >nitfol && |
| git add nitfol && |
| test_tick && |
| git commit -m "main adds file nitfol" && |
| |
| git checkout side && |
| |
| git rm --cached frotz/filfre && |
| mv frotz xyzzy && |
| test_ln_s_add xyzzy frotz && |
| git add xyzzy/filfre && |
| test_tick && |
| git commit -m "side moves frotz/ to xyzzy/ and adds frotz->xyzzy/" |
| |
| ' |
| |
| test_expect_success 'switch from symlink to dir' ' |
| |
| git checkout main |
| |
| ' |
| |
| test_expect_success 'Remove temporary directories & switch to main' ' |
| rm -fr frotz xyzzy nitfol && |
| git checkout -f main |
| ' |
| |
| test_expect_success 'switch from dir to symlink' ' |
| |
| git checkout side |
| |
| ' |
| |
| test_done |