t0001: handle `diff --no-index` gracefully

The test case 're-init to move gitdir symlink' wants to compare the contents of `newdir/.git`, which is a symbolic link pointing to a file. However, `git diff --no-index`, which is used by `test_cmp` on Windows, does not resolve symlinks; It shows the symlink _target_ instead (with a file mode of 120000). That is totally unexpected by the test case, which as a consequence fails, meaning that it's a bug in the test case itself. Co-authored-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Johannes Schindelin committed Dec 17, 2025 at 14:18 UTC 5e8e7e47e0029335bb8b51333d56077d72b862a9
1 file changed +5 -1
t/t0001-init.sh
+5 -1
@@ -425,7 +425,11 @@ test_expect_success SYMLINKS 're-init to move gitdir symlink' '
425 git init --separate-git-dir ../realgitdir
426 ) &&
427 echo "gitdir: $(pwd)/realgitdir" >expected &&
428 - test_cmp expected newdir/.git &&
428 + case "$GIT_TEST_CMP" in
429 + # `git diff --no-index` does not resolve symlinks
430 + *--no-index*) cmp expected newdir/.git;;
431 + *) test_cmp expected newdir/.git;;
432 + esac &&
433 test_cmp expected newdir/here &&
434 test_path_is_dir realgitdir/refs
435 '