fix(tests): isolate test-git-hooks-install.sh from inherited GIT_* env vars

The test's own `git -C "$TEMP_REPO" init` silently re-targets an inherited
GIT_DIR instead of creating a repo in the temp dir when this test itself
runs inside a git hook (e.g. pre-push sets GIT_DIR to the invoking repo's
gitdir). Unset all GIT_* vars at the top of the script so the temp repo
fixture is actually isolated regardless of the calling context.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FNJWdVvdgvZCHi1hZGqgVQ
This commit is contained in:
2026-07-05 12:52:52 +00:00
parent a43820725f
commit ba53e6544b

View File

@@ -3,6 +3,12 @@
# Runs install.sh from a temp repo to avoid touching the real .git/hooks/.
set -euo pipefail
# This script may itself run inside a git hook (e.g. pre-push), which sets
# GIT_DIR/GIT_EXEC_PATH/etc. in the environment. `git init`/`git -C` below
# would silently re-target the inherited GIT_DIR instead of creating an
# isolated repo in $TEMP_REPO, so start from a clean slate.
for var in $(compgen -v | grep '^GIT_'); do unset "$var"; done
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
PASS=0
FAIL=0