t5801: make remote-testgit GIT_DIR setup more robust

Our tests use a fake helper that just imports from an existing Git repository. We're fed the path to that repo on the command line, and derive the GIT_DIR by tacking on "/.git". This is wrong if the path is a bare repository, but that's OK since this is just a limited test. But it's also wrong if the transport code feeds us the actual .git directory itself (i.e., we expect "/path/to/repo" but it gives us "/path/to/repo/.git"). None of the current tests do that, but let's future-proof ourselves against adding a test that does. We can instead ask "rev-parse" to set our GIT_DIR. Note that we have to first unset other git variables from our environment. Coming into this script, we'll have GIT_DIR set to the fetching repository, and we need to "switch" to the remote one. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Jun 14, 2024 at 06:31 UTC e2269a2b59078d2da0e9450f0785bc547bbba0ed
1 file changed +2 -1
t/t5801/git-remote-testgit
+2 -1
@@ -26,7 +26,8 @@ then
26 t_refspec=""
27 fi
28
29 -GIT_DIR="$url/.git"
29 +unset $(git rev-parse --local-env-vars)
30 +GIT_DIR=$(git -C "$url" rev-parse --absolute-git-dir)
31 export GIT_DIR
32
33 force=