-
Notifications
You must be signed in to change notification settings - Fork 68
Description
As discussed in #432, we currently expect (and check during a scalar clone command) that the Scalar working directory's filename matching semantics have the same case-sensitivity as is the default for the given operating system (i.e., case-insensitive for Windows and macOS, and case-sensitive for Linux).
We specify these defaults in each concrete instance of ScalarPlatform, e.g., with CaseSensitiveFileSystem => false in WindowsPlatform, as well as in parallel locations in the unit tests' MockPlatform and in the functional tests' FileSystemHelpers.
However, it would be potentially beneficial to also support exceptions such as:
- case-insensitive directories in
casefoldext4 mounts on Linux - case-sensitive mounts of HFS+ and APFS on Mac
- case-sensitive directories in NTFS on Windows
This might be done with a custom Git configuration field, perhaps by attempting to auto-detect the case-matching semantics of the working directory when the initial scalar clone command is run. Currently that command checks the case-matching semantics of the working directory using the IsDirectoryCaseSensitive() method, but only to issue an error if they do not align with the expected semantics for the OS. Instead, we might use this method or something similar to auto-detect the case-matching semantics, or we might defer to a user-specified configuration value.