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
index 618da080dc..e4d32bb4d2 100755
--- a/t/t0001-init.sh
+++ b/t/t0001-init.sh
@@ -425,7 +425,11 @@ test_expect_success SYMLINKS 're-init to move gitdir symlink' '
git init --separate-git-dir ../realgitdir
) &&
echo "gitdir: $(pwd)/realgitdir" >expected &&
- test_cmp expected newdir/.git &&
+ case "$GIT_TEST_CMP" in
+ # `git diff --no-index` does not resolve symlinks
+ *--no-index*) cmp expected newdir/.git;;
+ *) test_cmp expected newdir/.git;;
+ esac &&
test_cmp expected newdir/here &&
test_path_is_dir realgitdir/refs
'