From: Junio C Hamano Date: Mon, 12 Oct 2026 19:20:41 GMT Subject: Re: [PATCH 2/3] t6500: get hostname from "git var" Message-ID: In-Reply-To: <20261012015846.2649843-3-bellacaselli20@gmail.com> Isabella Caselli writes: > The test "background auto gc respects lock for all operations" simulates > a concurrent gc by writing our shell's pid and hostname to "gc.pid". > It gets the hostname from the "hostname" command, falling back to > "unknown" if the command fails. > > "git gc" gets its hostname from the system and only checks whether the > pid is alive if the two hostnames match. Otherwise, it assumes the > lock belongs to a gc running on another machine. Since the test passes > in either case, a missing "hostname" command or a mismatch between > its output and the system hostname can cause the test to silently > exercise the wrong case. "exercise the wrong case", meaning... where hostname(1) output is different from "git var GIT_HOSTNAME" (aka xgethostname()), we would have written bogus name in .git/gc.pid file, simulating the case where gc.pid was written by a process running on a different machine. What is the implications of doing so? > > Use "git var GIT_HOSTNAME" to get the same hostname as "git gc". > Keep the "unknown" fallback, which is also used by "git gc" when it > cannot determine the hostname. > > Helped-by: Jeff King > Signed-off-by: Isabella Caselli > --- > t/t6500-gc.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/t/t6500-gc.sh b/t/t6500-gc.sh > index a7142ab815..f928089bf0 100755 > --- a/t/t6500-gc.sh > +++ b/t/t6500-gc.sh > @@ -413,7 +413,7 @@ test_expect_success 'background auto gc respects lock for all operations' ' > > # now fake a concurrent gc that holds the lock; we can use our > # shell pid so that it looks valid. > - hostname=$(hostname || echo unknown) && > + hostname=$(git var GIT_HOSTNAME || echo unknown) && > shell_pid=$$ && > if test_have_prereq MINGW && test -f /proc/$shell_pid/winpid > then