From ca6c0f5852a7bbeee294cd44fe4d57d7cd10cf52 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 17 Sep 2026 02:43:37 +0200 Subject: [PATCH] Keep shell scripts LF so a Windows clone can run the Linux path `* text=auto` and nothing else, so a Windows clone writes every shell script with carriage returns. The documented Linux path is a container that runs one of them, and it dies in under a second with a complaint about an interpreter named `bash\r`. Nothing in that failure names line endings, and the same clone builds and tests fine everywhere else, so it reads as a broken image. `scripts/build-quic-native.sh` is the only shell script in the repository and the only file on those paths that an interpreter reads by shebang; the mutation runner is Node and handles carriage returns itself, and the Dockerfile builds either way. Co-Authored-By: Claude Opus 5 --- .gitattributes | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitattributes b/.gitattributes index dfe07704..2b8f1fee 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,10 @@ # Auto detect text files and perform LF normalization * text=auto + +# Shell scripts keep LF in the working tree as well as in the index. Left to +# `text=auto`, a Windows clone writes them with carriage returns, and the +# documented Linux path then dies inside the container in under a second: the +# shebang reads as the interpreter `bash\r`, which does not exist. Nothing about +# that failure names line endings, and the same clone builds and tests fine +# everywhere else, so it reads as a broken image rather than a broken checkout. +*.sh text eol=lf