Introduces a three-layer defence against CRLF/LF drift: - `.gitattributes` normalizes all text files to LF on commit and checkout; Windows-native scripts (*.bat, *.cmd, *.ps1) explicitly keep CRLF. - `.editorconfig` instructs editors (VS Code, JetBrains, vim, etc.) to save with LF by default so the problem is prevented at the source. - `mixed-line-ending --fix=lf` hook in pre-commit catches anything that slips through and auto-fixes it before commit. No file contents are normalized in this commit — that follows in a separate `git add --renormalize .` commit for easier review.
52 lines
1.1 KiB
Plaintext
52 lines
1.1 KiB
Plaintext
# Normalize all text files to LF on commit and checkout.
|
|
# Prevents CRLF drift when contributors work on Windows with core.autocrlf=true.
|
|
* text=auto eol=lf
|
|
|
|
# Python and shell — LF everywhere, shebangs require it on Unix.
|
|
*.py text eol=lf
|
|
*.sh text eol=lf
|
|
|
|
# Web / config — LF.
|
|
*.ts text eol=lf
|
|
*.tsx text eol=lf
|
|
*.js text eol=lf
|
|
*.jsx text eol=lf
|
|
*.mjs text eol=lf
|
|
*.cjs text eol=lf
|
|
*.json text eol=lf
|
|
*.yml text eol=lf
|
|
*.yaml text eol=lf
|
|
*.toml text eol=lf
|
|
*.md text eol=lf
|
|
*.html text eol=lf
|
|
*.css text eol=lf
|
|
|
|
# KiCad project files are text (S-expressions / JSON) — LF.
|
|
*.kicad_sch text eol=lf
|
|
*.kicad_pcb text eol=lf
|
|
*.kicad_pro text eol=lf
|
|
*.kicad_sym text eol=lf
|
|
*.kicad_mod text eol=lf
|
|
*.kicad_dru text eol=lf
|
|
*.kicad_wks text eol=lf
|
|
*.net text eol=lf
|
|
|
|
# Windows-native scripts — must stay CRLF.
|
|
*.bat text eol=crlf
|
|
*.cmd text eol=crlf
|
|
*.ps1 text eol=crlf
|
|
|
|
# Binary assets — never touch.
|
|
*.png binary
|
|
*.jpg binary
|
|
*.jpeg binary
|
|
*.gif binary
|
|
*.ico binary
|
|
*.pdf binary
|
|
*.zip binary
|
|
*.gz binary
|
|
*.woff binary
|
|
*.woff2 binary
|
|
*.ttf binary
|
|
*.otf binary
|