Ben, I don't think there is anything possible on the R side, because R itself just relies on the system calls and there are just way too many ways to access files so it’s impossible to cover them all. The thing you are looking for is when opening an existing file to check if the name on disk matches the name that is open - which in theory you could do if you hijacked the most common syscalls like open/fopen and routed them through that extra logic, but macOS security protection measures are trying to prevent you from doing things like that.
The best I can think of is to give them a script they can run on their Mac which will check out the repo in a case-sensitive temporary volume and run their code there: # create 256Mb case-sensitive ram disk "GitTest" diskutil erasevolume APFSX GitTest $(hdiutil attach -nomount ram://524288) ## do the test there cd /Volumes/GitTest git clone [email protected]:student/myAssignment.git cd myAssignment Rscript -e 'rmardown::render("assignment.Rmd")' ## go home and eject cd hdiutil eject /Volumes/GitTest RAM disk is convenient since you can script it fully, but may be tricky if your data/analysis is very big. Cheers, Simon > On 18 Jan 2026, at 09:57, Ben Bolker <[email protected]> wrote: > > I have a problem/annoyance with students who are working on MacOS and > sharing Git repositories with data file and code where the strings used in > their code to designate the data files are not case-matched to the actual > names of the files on disk. They don't notice this because they're using a > case-insensitive file system on MacOS, but it bites me when I try to run the > code on my Linux system. > > I can of course tell them to be more careful, but: is there any kind of > programmatic check for this that they could use when testing their code > before submission? (Students are not super-technically savvy, so telling them > to adjust the properties of their file systems, even if it's something that's > possible, is not a realistic option; neither is telling them to use GitHub > Actions to run checks elsewhere ...) > > I'm imagining (ideally) some kind of _CHECK_CASE_STRICTLY_ environment > variable/options setting/etc., but I'd be interested in any creative > solutions. > > Tangentially related: > > https://www.reddit.com/r/MacOS/comments/1ha36y5/macos_apfs_caseinsensitive_and_handling_git_repo/ > > cheers > Ben Bolker > > > -- > Dr. Benjamin Bolker > Professor, Mathematics & Statistics and Biology, McMaster University > Associate Chair (Graduate), Department of Mathematics & Statistics > Director, School of Computational Science and Engineering >> E-mail is sent at my convenience; I don't expect replies outside of working >> hours. > > _______________________________________________ > R-SIG-Mac mailing list > [email protected] > https://stat.ethz.ch/mailman/listinfo/r-sig-mac > _______________________________________________ R-SIG-Mac mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-sig-mac
