* text=auto eol=crlf

# Shell scripts must stay LF (this repo uses Git Bash) — CRLF breaks them.
*.sh text eol=lf

# Explicit binary markers (prevent text mis-detection / corruption):
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.dll binary
*.exe binary
*.pdb binary
*.snk binary
*.parquet binary
*.zip binary
*.duckdb binary

# A captured PostgreSQL log is a FIXTURE of real bytes: the parser keys on the exact line endings
# and the tab-indented continuation, so line-ending normalisation would change what it is evidence of.
Darling/Darling.Tests/Fixtures/auto_explain_real_block.txt -text

# A script signed by Set-AuthenticodeSignature (#5796): the release guard's reader is checked against
# its exact bytes, and the signature block's CRLF line endings are part of what it reads.
.github/scripts/fixtures/signed-golden.ps1 -text

# The #4336 managed-conf rehearsal fixture holds real postgresql.conf bytes (initdb stock plus
# product-managed blocks and hand edits) that a live PostgreSQL parses; the rewrite it exercises is also
# LF-sensitive line-count/removal counting, so this stays LF regardless of the repo-wide eol=crlf default.
Darling/Darling.Tests/Fixtures/ManagedConf/rehearsal-postgresql.conf text eol=lf

# The PostgreSQL verification rig runs INSIDE Linux containers. A Dockerfile whose RUN lines carry a
# trailing CR breaks the shell that executes them, and the seed is fed to psql in the container the same
# way - so these keep LF regardless of the repo-wide eol=crlf default.
tools/pg-verification-rig/Dockerfile text eol=lf
tools/pg-verification-rig/*.yml text eol=lf
tools/pg-verification-rig/*.sql text eol=lf
# Screenshot baselines for the web UI check (#5744): PNGs, never diffed or converted as text.
tools/ui-smoke/baselines/*.png binary
