2007-08-13 07:38:11 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
test_description='check problems with relative GIT_DIR
|
|
|
|
|
|
|
|
This test creates a working tree state with a file and subdir:
|
|
|
|
|
|
|
|
top (committed several times)
|
|
|
|
subdir (a subdirectory)
|
|
|
|
|
|
|
|
It creates a commit-hook and tests it, then moves .git
|
|
|
|
into the subdir while keeping the worktree location,
|
|
|
|
and tries commits from the top and the subdir, checking
|
|
|
|
that the commit-hook still gets called.'
|
|
|
|
|
2021-10-12 15:56:44 +02:00
|
|
|
TEST_PASSES_SANITIZE_LEAK=true
|
2007-08-13 07:38:11 +02:00
|
|
|
. ./test-lib.sh
|
|
|
|
|
|
|
|
COMMIT_FILE="$(pwd)/output"
|
|
|
|
export COMMIT_FILE
|
|
|
|
|
|
|
|
test_expect_success 'Setting up post-commit hook' '
|
|
|
|
mkdir -p .git/hooks &&
|
|
|
|
echo >.git/hooks/post-commit "#!/bin/sh
|
|
|
|
touch \"\${COMMIT_FILE}\"
|
|
|
|
echo Post commit hook was called." &&
|
|
|
|
chmod +x .git/hooks/post-commit'
|
|
|
|
|
|
|
|
test_expect_success 'post-commit hook used ordinarily' '
|
|
|
|
echo initial >top &&
|
2010-10-31 02:46:54 +01:00
|
|
|
git add top &&
|
2008-09-03 10:59:27 +02:00
|
|
|
git commit -m initial &&
|
2007-08-13 07:38:11 +02:00
|
|
|
test -r "${COMMIT_FILE}"
|
|
|
|
'
|
|
|
|
|
|
|
|
rm -rf "${COMMIT_FILE}"
|
|
|
|
mkdir subdir
|
|
|
|
mv .git subdir
|
|
|
|
|
|
|
|
test_expect_success 'post-commit-hook created and used from top dir' '
|
|
|
|
echo changed >top &&
|
|
|
|
git --git-dir subdir/.git add top &&
|
|
|
|
git --git-dir subdir/.git commit -m topcommit &&
|
|
|
|
test -r "${COMMIT_FILE}"
|
|
|
|
'
|
|
|
|
|
|
|
|
rm -rf "${COMMIT_FILE}"
|
|
|
|
|
|
|
|
test_expect_success 'post-commit-hook from sub dir' '
|
2010-10-31 02:46:54 +01:00
|
|
|
echo changed again >top &&
|
2007-08-13 07:38:11 +02:00
|
|
|
cd subdir &&
|
|
|
|
git --git-dir .git --work-tree .. add ../top &&
|
|
|
|
git --git-dir .git --work-tree .. commit -m subcommit &&
|
|
|
|
test -r "${COMMIT_FILE}"
|
|
|
|
'
|
|
|
|
|
|
|
|
test_done
|