|
| 1 | +# .gitattributes — line-ending normalisation |
| 2 | +# |
| 3 | +# WHY THIS EXISTS |
| 4 | +# =============== |
| 5 | +# `git add` on Windows warned "LF will be replaced by CRLF the next time Git touches |
| 6 | +# it" for every file in a batch, which means core.autocrlf is rewriting on checkout. |
| 7 | +# Git stores LF in the repository either way, so nothing is corrupt — but the |
| 8 | +# consequences are worth removing: |
| 9 | +# |
| 10 | +# * The working tree stops matching the repository byte-for-byte, so any hash or |
| 11 | +# byte comparison between a Windows checkout and a Linux CI runner disagrees for |
| 12 | +# reasons that have nothing to do with content. That is exactly the kind of noise |
| 13 | +# that hides a real difference: four files in this repository were once a revision |
| 14 | +# behind, and finding that meant hashing every .py file against a known-good copy. |
| 15 | +# * A file that must not carry CRLF eventually does. A shell script with CRLF fails |
| 16 | +# in a container with "\r: command not found", and a here-doc or a signature block |
| 17 | +# with a stray \r fails in ways that read as a logic bug. |
| 18 | +# |
| 19 | +# eol=lf rather than bare `text=auto`: this pins LF in the WORKING TREE too, on every |
| 20 | +# platform, so a Windows checkout is byte-identical to what CI tests. Every editor |
| 21 | +# that matters handles LF on Windows. |
| 22 | +# |
| 23 | +# AFTER ADDING THIS, RENORMALISE ONCE: |
| 24 | +# git add --renormalize . |
| 25 | +# git status # expect nothing, or line-ending-only changes |
| 26 | +# git commit -m "Normalise line endings to LF" |
| 27 | +* text=auto eol=lf |
| 28 | + |
| 29 | +# Generated. Kept out of diffs and out of language statistics; it is still committed, |
| 30 | +# because without it CI resolves dependencies fresh on every run and the build is not |
| 31 | +# reproducible. |
| 32 | +uv.lock -diff linguist-generated=true |
| 33 | + |
| 34 | +# Binary. Never transformed, never diffed as text. |
| 35 | +*.png binary |
| 36 | +*.jpg binary |
| 37 | +*.jpeg binary |
| 38 | +*.gif binary |
| 39 | +*.ico binary |
| 40 | +*.pdf binary |
| 41 | +*.docx binary |
| 42 | +*.pptx binary |
| 43 | +*.xlsx binary |
| 44 | +*.zip binary |
| 45 | +*.whl binary |
| 46 | +*.gz binary |
| 47 | +*.p12 binary |
| 48 | +*.pfx binary |
| 49 | + |
| 50 | +# Vendored browser libraries for the console: shipped as-is, excluded from language |
| 51 | +# statistics so the repository does not read as mostly JavaScript. |
| 52 | +gui/static/vendor/** linguist-vendored=true |
| 53 | + |
| 54 | +# Documentation figures are generated by docs/make_arch_diagrams.py and the Mermaid |
| 55 | +# sources in docs/diagrams-src; diffing them as text is meaningless. |
| 56 | +docs/diagrams/** binary |
0 commit comments