From 9bcd4392665c984211f4f9f3538daed19f6a7edf Mon Sep 17 00:00:00 2001 From: buenosairesam Date: Wed, 19 Aug 2026 02:55:06 -0300 Subject: [PATCH] Normalise line endings to LF MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit spr had no .gitattributes at all, despite shipping ctrl/*.sh and generating gen//ctrl/*.sh. A checkout on Windows/WSL rewrites those to CRLF, and a shell script with CRLF fails as `bad interpreter: /usr/bin/env bash^M` — which reads as a broken installer rather than a line-ending problem. Copied verbatim from rig/.gitattributes and deliberately duplicated rather than shared: rig/ has to carry its own so it survives being handed over alone. No tracked file in either repo currently has CRLF, so `git add --renormalize .` rewrote nothing. Landing it now, while that is true, keeps it off the diff of whatever lands next. Co-Authored-By: Claude Opus 5 (1M context) --- .gitattributes | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..446cab4 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,27 @@ +# Copied verbatim from rig/.gitattributes, and deliberately duplicated rather +# than shared: rig/ must carry its own so it survives being handed over on its +# own, and spr had none at all despite shipping ctrl/*.sh and generating +# gen//ctrl/*.sh. +# +# Line endings are normalised to LF in the repository and on checkout, on every +# platform. Without this, a checkout on Windows/WSL rewrites files to CRLF and +# every one of them shows up as modified without anyone having touched it. +# +# For the scripts it is not cosmetic: a shell script with CRLF fails on Linux +# with `bad interpreter: /usr/bin/env bash^M`, which reads as a broken installer +# rather than a line-ending problem — the worst possible first impression on a +# machine where nothing has been proven yet. +* text=auto eol=lf + +*.sh text eol=lf +*.py text eol=lf +*.env text eol=lf +*.yaml text eol=lf +*.yml text eol=lf + +# Never touch binaries. +*.png binary +*.jpg binary +*.zip binary +*.tar binary +*.gz binary