-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Description
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: renameClause.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:- 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!