git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v4 04/10] t0001: handle `diff --no-index` gracefully

From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
Date
Dec 17, 2025, 14:18 UTC
Message-ID
<70237394c64101b3d70a1d31bd4a763997474cb1.1765981126.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.2009.v4.git.1765981126.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>

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>
---
 t/t0001-init.sh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/t/t0001-init.sh b/t/t0001-init.sh
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
 '
-- 
gitgitgadget
Previous: Johannes Schindelin via GitGitGadgetNext: Johannes Schindelin via GitGitGadget
Message 61 of 68 in “Prepare Git's test suite for symbolic link support on Windows”
  1. 00/10 Prepare Git's test suite for symbolic link support on WindowsJohannes Schindelin via GitGitGadget, Nov 29, 2025
  2. 01/10 t9700: accommodate for Windows pathsJohannes Schindelin via GitGitGadget, Nov 29, 2025
  3. 02/10 apply: symbolic links lack a "trustable executable bit"Johannes Schindelin via GitGitGadget, Nov 29, 2025
  4. 03/10 mingw: special-case `open(symlink, O_CREAT | O_EXCL)`Johannes Schindelin via GitGitGadget, Nov 29, 2025
  5. Junio C HamanoNov 30, 2025
  6. Johannes SchindelinDec 1, 2025
  7. Junio C HamanoDec 6, 2025
  8. 04/10 t0001: handle `diff --no-index` gracefullyJohannes Schindelin via GitGitGadget, Nov 29, 2025
  9. Junio C HamanoNov 30, 2025
  10. Johannes SchindelinDec 1, 2025
  11. Junio C HamanoDec 2, 2025
  12. 05/10 t0301: another fix for Windows compatibilityJohannes Schindelin via GitGitGadget, Nov 29, 2025
  13. Junio C HamanoNov 30, 2025
  14. Johannes SchindelinDec 1, 2025
  15. Junio C HamanoDec 2, 2025
  16. Johannes SchindelinDec 2, 2025
  17. Junio C HamanoDec 6, 2025
  18. 06/10 t0600: fix incomplete prerequisite for a test caseJohannes Schindelin via GitGitGadget, Nov 29, 2025
  19. Patrick SteinhardtDec 1, 2025
  20. Johannes SchindelinDec 1, 2025
  21. 07/10 t1006: accommodate for symlink support in MSYS2Johannes Schindelin via GitGitGadget, Nov 29, 2025
  22. Patrick SteinhardtDec 1, 2025
  23. Johannes SchindelinDec 1, 2025
  24. Patrick SteinhardtDec 1, 2025
  25. 08/10 t1305: skip symlink tests that do not apply to WindowsJohannes Schindelin via GitGitGadget, Nov 29, 2025
  26. 09/10 t6423: introduce Windows-specific handling for symlinking to /dev/nullJohannes Schindelin via GitGitGadget, Nov 29, 2025
  27. 10/10 t7800: work around the MSYS path conversion on WindowsJohannes Schindelin via GitGitGadget, Nov 29, 2025
  28. Junio C HamanoNov 30, 2025
  29. Eric SunshineNov 30, 2025
  30. Johannes SchindelinDec 1, 2025
  31. 00/10 Prepare Git's test suite for symbolic link support on WindowsJohannes Schindelin via GitGitGadget, Dec 5, 2025
  32. 02/10 apply: symbolic links lack a "trustable executable bit"Johannes Schindelin via GitGitGadget, Dec 5, 2025
  33. 01/10 t9700: accommodate for Windows pathsJohannes Schindelin via GitGitGadget, Dec 5, 2025
  34. 03/10 mingw: special-case `open(symlink, O_CREAT | O_EXCL)`Johannes Schindelin via GitGitGadget, Dec 5, 2025
  35. 04/10 t0001: handle `diff --no-index` gracefullyJohannes Schindelin via GitGitGadget, Dec 5, 2025
  36. 05/10 t0301: another fix for Windows compatibilityJohannes Schindelin via GitGitGadget, Dec 5, 2025
  37. 06/10 t0600: fix incomplete prerequisite for a test caseJohannes Schindelin via GitGitGadget, Dec 5, 2025
  38. 07/10 t1006: accommodate for symlink support in MSYS2Johannes Schindelin via GitGitGadget, Dec 5, 2025
  39. 08/10 t1305: skip symlink tests that do not apply to WindowsJohannes Schindelin via GitGitGadget, Dec 5, 2025
  40. 09/10 t6423: introduce Windows-specific handling for symlinking to /dev/nullJohannes Schindelin via GitGitGadget, Dec 5, 2025
  41. 10/10 t7800: work around the MSYS path conversion on WindowsJohannes Schindelin via GitGitGadget, Dec 5, 2025
  42. Patrick SteinhardtDec 9, 2025
  43. Junio C HamanoDec 9, 2025
  44. 00/10 Prepare Git's test suite for symbolic link support on WindowsJohannes Schindelin via GitGitGadget, Dec 16, 2025
  45. 01/10 t9700: accommodate for Windows pathsJohannes Schindelin via GitGitGadget, Dec 16, 2025
  46. 02/10 apply: symbolic links lack a "trustable executable bit"Johannes Schindelin via GitGitGadget, Dec 16, 2025
  47. 03/10 mingw: special-case `open(symlink, O_CREAT | O_EXCL)`Johannes Schindelin via GitGitGadget, Dec 16, 2025
  48. 04/10 t0001: handle `diff --no-index` gracefullyJohannes Schindelin via GitGitGadget, Dec 16, 2025
  49. 05/10 t0301: another fix for Windows compatibilityJohannes Schindelin via GitGitGadget, Dec 16, 2025
  50. 07/10 t1006: accommodate for symlink support in MSYS2Johannes Schindelin via GitGitGadget, Dec 16, 2025
  51. 08/10 t1305: skip symlink tests that do not apply to WindowsJohannes Schindelin via GitGitGadget, Dec 16, 2025
  52. 09/10 t6423: introduce Windows-specific handling for symlinking to /dev/nullJohannes Schindelin via GitGitGadget, Dec 16, 2025
  53. 10/10 t7800: work around the MSYS path conversion on WindowsJohannes Schindelin via GitGitGadget, Dec 16, 2025
  54. Junio C HamanoDec 16, 2025
  55. Johannes SchindelinDec 16, 2025
  56. Junio C HamanoDec 17, 2025
  57. 00/10 Prepare Git's test suite for symbolic link support on WindowsJohannes Schindelin via GitGitGadget, Dec 17, 2025
  58. 01/10 t9700: accommodate for Windows pathsJohannes Schindelin via GitGitGadget, Dec 17, 2025
  59. 02/10 apply: symbolic links lack a "trustable executable bit"Johannes Schindelin via GitGitGadget, Dec 17, 2025
  60. 03/10 mingw: special-case `open(symlink, O_CREAT | O_EXCL)`Johannes Schindelin via GitGitGadget, Dec 17, 2025
  61. 04/10 t0001: handle `diff --no-index` gracefullyJohannes Schindelin via GitGitGadget, Dec 17, 2025
  62. 05/10 t0301: another fix for Windows compatibilityJohannes Schindelin via GitGitGadget, Dec 17, 2025
  63. 06/10 t0600: fix incomplete prerequisite for a test caseJohannes Schindelin via GitGitGadget, Dec 17, 2025
  64. 07/10 t1006: accommodate for symlink support in MSYS2Johannes Schindelin via GitGitGadget, Dec 17, 2025
  65. 08/10 t1305: skip symlink tests that do not apply to WindowsJohannes Schindelin via GitGitGadget, Dec 17, 2025
  66. 09/10 t6423: introduce Windows-specific handling for symlinking to /dev/nullJohannes Schindelin via GitGitGadget, Dec 17, 2025
  67. 10/10 t7800: work around the MSYS path conversion on WindowsJohannes Schindelin via GitGitGadget, Dec 17, 2025
  68. Junio C HamanoDec 17, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.