Hi maintainers,
I encountered a reproducible filesystem-level issue when cloning the repository on macOS (default APFS, case-insensitive).
During git clone, Git reports filename collisions in the satore/ project:
'satore/Clause.rkt'
'satore/clause.rkt'
'satore/tests/Clause.rkt'
'satore/tests/clause.rkt'
Because macOS cannot distinguish between files that differ only by case, only one file from each pair is checked out. This results in:
• Git marking the files as “modified” immediately after clone
• Loss of one of the file variants (actual data loss locally)
• Prevents clean worktrees and contributes to confusion for contributors using macOS
• Makes the satore project effectively unusable on macOS without workarounds
This issue will happen for all macOS users using the default filesystem.
Proposed Fixes (I can implement one if preferred):
-
Rename files in satore/ to avoid case collisions
Example: rename Clause.rkt → Clause_upper.rkt or similar.
Update require statements in the Racket code accordingly.
-
Move the satore project into a submodule or separate repository
This isolates the conflicting filesystem and avoids breaking macOS clones of the main repo.
-
Document macOS-specific workaround
Add a section in README noting:
- macOS users must clone inside a case-sensitive disk image, OR
- Use
git update-index --assume-unchanged … to ignore the colliding files
-
Provide platform-agnostic file structure
Standardize filenames to lowercase across the project.
Please let me know which fix direction the maintainers prefer.
I am happy to submit a PR with the full solution.
Thanks!
Hi maintainers,
I encountered a reproducible filesystem-level issue when cloning the repository on macOS (default APFS, case-insensitive).
During
git clone, Git reports filename collisions in thesatore/project:Because macOS cannot distinguish between files that differ only by case, only one file from each pair is checked out. This results in:
• Git marking the files as “modified” immediately after clone
• Loss of one of the file variants (actual data loss locally)
• Prevents clean worktrees and contributes to confusion for contributors using macOS
• Makes the
satoreproject effectively unusable on macOS without workaroundsThis issue will happen for all macOS users using the default filesystem.
Proposed Fixes (I can implement one if preferred):
Rename files in
satore/to avoid case collisionsExample: rename
Clause.rkt→Clause_upper.rktor similar.Update require statements in the Racket code accordingly.
Move the satore project into a submodule or separate repository
This isolates the conflicting filesystem and avoids breaking macOS clones of the main repo.
Document macOS-specific workaround
Add a section in README noting:
git update-index --assume-unchanged …to ignore the colliding filesProvide platform-agnostic file structure
Standardize filenames to lowercase across the project.
Please let me know which fix direction the maintainers prefer.
I am happy to submit a PR with the full solution.
Thanks!