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

[PATCH 1/5] t7300: work around platform-specific behaviour with long paths on MinGW

From
Patrick Steinhardt <ps@pks.im>
Date
Oct 9, 2024, 13:25 UTC
Message-ID
<bdaf16a06168b7320e8dd1115258f00745a104c7.1728480039.git.ps@pks.im>
In-Reply-To
<cover.1728480039.git.ps@pks.im>

Windows by default has a restriction in place to only allow paths up to 260 characters. This restriction can nowadays be lifted by setting a registry key, but is still active by default.

In t7300 we have one test that exercises the behaviour of git-clean(1) with such long paths. Interestingly enough, this test fails on my system that uses Windows 10 with mingw-w64 installed via MSYS2: instead of observing ENAMETOOLONG, we observe ENOENT. This behaviour is consistent across multiple different environments I have tried.

I cannot say why exactly we observe a different error here, but I would not be surprised if this was either dependent on the Windows version, the version of MinGW, the current working directory of Git or any kind of combination of these.

Work around the issue by handling both errors.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 t/t7300-clean.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh
index 0aae0dee67..12ab25296b 100755
--- a/t/t7300-clean.sh
+++ b/t/t7300-clean.sh
@@ -747,7 +747,7 @@ test_expect_success MINGW 'handle clean & core.longpaths = false nicely' '
 	test_must_fail git clean -xdf 2>.git/err &&
 	# grepping for a strerror string is unportable but it is OK here with
 	# MINGW prereq
-	test_grep "too long" .git/err
+	test_grep -e "too long" -e "No such file or directory" .git/err
 '
 
 test_expect_success 'clean untracked paths by pathspec' '
-- 
2.47.0.rc1.33.g90fe3800b9.dirty
Previous: Patrick SteinhardtNext: Junio C Hamano
Message 2 of 8 in “Wire up Windows-based jobs in GitLab CI”
  1. 0/5 Wire up Windows-based jobs in GitLab CIPatrick Steinhardt, Oct 9, 2024
  2. 1/5 t7300: work around platform-specific behaviour with long paths on MinGWPatrick Steinhardt, Oct 9, 2024
  3. Junio C HamanoOct 9, 2024
  4. Patrick SteinhardtOct 10, 2024
  5. 2/5 ci: create script to set up Git for Windows SDKPatrick Steinhardt, Oct 9, 2024
  6. 3/5 ci: handle Windows-based CI jobs in GitLab CIPatrick Steinhardt, Oct 9, 2024
  7. 4/5 gitlab-ci: introduce stages and dependenciesPatrick Steinhardt, Oct 9, 2024
  8. 5/5 gitlab-ci: exercise Git on WindowsPatrick Steinhardt, Oct 9, 2024

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.