> > We could also open the parent directory, read all the filenames
> > within it, normalise them all, and then search the resulting
> > list. This works, expect if a name exists twice, once in NFC form
> > and once in NFD form. We'd somehow have to solve the name collision
> > in the filesystem.
> This sounds astonishingly similar to the lower/upper case problem of
> UN*X vs. Mac/Win.
There are similarities, but there are some important differences:
- We have to support Mac OS X, which stores all files in NFD. In the
upper/lowercase analogy, think of OS X as MS-DOS, which does not
preserve mixed case at all but always represents files in uppercase.
Subversion doesn't support MS-DOS and I hope we never need to. MS
Windows, OTOH, at least preserves the upper/lowercase distinction
presented to it when you create a file. Big difference.
(I'm not saying OS X is like MS-DOS in other respects. Just for the
purpose of the NFC/NFD vs. upper/lower analogy.)
- Also, the Subversion platform has chosen to support files like README
and Readme that conflict on Windows. Our reasoning is "if you have
users on Windows, don't do that." Most solutions to the NFC/NFD
problem will affect all platforms, not just one, and we probably
can't just say "well, don't do that" - we'll need to actually prevent
it - and somehow deal with existing clients, WCs, and repositories).
Because of those differences, my gut feeling is that we can't treat the
two issues in the same way.
Received on 2012-01-30 16:22:57 CET