git/t/t2408-worktree-relative.sh

#!/bin/sh

test_description='test worktrees linked with relative paths'

TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh

test_expect_success 'links worktrees with relative paths' '
	test_when_finished rm -rf repo &&
	git init repo &&
	(
		cd repo &&
		test_commit initial &&
		git worktree add wt1 &&
		echo "../../../wt1/.git" >expected_gitdir &&
		cat .git/worktrees/wt1/gitdir >actual_gitdir &&
		echo "gitdir: ../.git/worktrees/wt1" >expected_git &&
		cat wt1/.git >actual_git &&
		test_cmp expected_gitdir actual_gitdir &&
		test_cmp expected_git actual_git
	)
'

test_expect_success 'move repo without breaking relative internal links' '
	test_when_finished rm -rf repo moved &&
	git init repo &&
	(
		cd repo &&
		test_commit initial &&
		git worktree add wt1 &&
		cd .. &&
		mv repo moved &&
		cd moved/wt1 &&
		git status >out 2>err &&
		test_must_be_empty err
	)
'

test_done