`*.sh text eol=lf` reaches new clones only. A clone checked out before the rule keeps scripts/build-quic-native.sh with carriage returns after pulling, because the blob did not change: git neither rewrites the file nor reports it modified, and the container still dies on the interpreter `bash\r`. The README now gives the repair where a newcomer meets the container path, and .gitattributes points to it. Verified on clones made at367c9bcand moved toc25de5a, from Git Bash and from Windows PowerShell 5.1: 109 CR bytes before, none after, status clean. The line uses `;` so it runs in both. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
15 lines
807 B
Text
15 lines
807 B
Text
# 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.
|
|
#
|
|
# A clone checked out before this rule keeps its carriage returns, because the
|
|
# blob is unchanged and git has no reason to rewrite the file. The one-line
|
|
# repair is in native/GameCult.Mesh.Quic.Native/README.md, beside the container
|
|
# path it unblocks.
|
|
*.sh text eol=lf
|