| test_description='check problems with relative GIT_DIR |
| This test creates a working tree state with a file and subdir: |
| top (committed several times) |
| 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.' |
| COMMIT_FILE="$(pwd)/output" |
| test_expect_success 'Setting up post-commit hook' ' |
| 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' ' |
| test_expect_success 'post-commit-hook created and used from top dir' ' |
| git --git-dir subdir/.git add top && |
| git --git-dir subdir/.git commit -m topcommit && |
| test_expect_success 'post-commit-hook from sub dir' ' |
| echo changed again >top && |
| git --git-dir .git --work-tree .. add ../top && |
| git --git-dir .git --work-tree .. commit -m subcommit && |