From f0edd54e83ba8943285b4ef0e77ead9b61bae436 Mon Sep 17 00:00:00 2001 From: slaguru666 <111923774+slaguru666@users.noreply.github.com> Date: Tue, 25 Aug 2026 21:29:11 +0100 Subject: [PATCH] Mark packs/ binary so Windows checkouts stop corrupting the compendia core.autocrlf=true rewrites packs/*/CURRENT from "MANIFEST-000002\n" to "MANIFEST-000002\r\n" on checkout. LevelDB then tries to open a manifest whose filename ends in a carriage return, fails with "The filename, directory name, or volume label syntax is incorrect", and Foundry runs RepairDB across all eighteen packs on first launch. The packs are therefore broken from the moment they are cloned, and the only visible symptom is a pile of lost/ directories in git status. Linux and macOS checkouts are unaffected, which is why this went unnoticed. The committed blobs are already LF, so no renormalisation is needed: this only affects the smudge side. Co-Authored-By: Claude Opus 5 --- .gitattributes | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..49892be --- /dev/null +++ b/.gitattributes @@ -0,0 +1,15 @@ +# The compendia in packs/ are LevelDB databases, and they are BINARY. +# +# Without this, a checkout on Windows (core.autocrlf=true, which is the Git for +# Windows default) rewrites packs/*/CURRENT from "MANIFEST-000002\n" to +# "MANIFEST-000002\r\n". LevelDB then tries to open a manifest whose filename +# ends in a carriage return, fails with "The filename, directory name, or volume +# label syntax is incorrect", and Foundry runs RepairDB across all eighteen packs +# on first launch. The packs are broken from the moment they are cloned and the +# only visible symptom is a pile of lost/ directories in git status. +# +# Linux and macOS checkouts are unaffected, which is why this went unnoticed. +packs/** -text -diff + +# Generated art is binary too; same reasoning, less catastrophic. +*.webp -text -diff