On Oct 5, 2016, at 8:59 AM, Richard Hipp <d...@sqlite.org> wrote:
> On 10/5/16, Warren Young <w...@etr-usa.com> wrote:
>> If your repository has such file names in it, working around the
>> Windows limitation in Fossil just boots the problem a few squares down the
>> sidewalk, where it will be stumbled upon shortly by some other tool.
> For this reason, the current fix is simply to output a more helpful
> error message that tries to explain the situation.
> Probably we also need to also fix Fossil so that it doesn't give up
> and die when it encounters an error like this but instead at least
> tried to check out all the other files.  Perhaps there should also be
> warnings when one does "fossil add" or "fossil mv" to create a
> disallowed filename on unix - a warning to say that this will work
> fine on unix but will fail when you move the change to windows.

I’m okay with warnings, but that’s as far as it should go.  I don’t want to see 
Fossil adopting least-common-denominator policies that prevent those of us who 
have repos that never touch Windows from being limited by Windows.

(I currently use a program on Mac OS X that enforces such restrictions, and 
it’s seriously annoying.)

Windows actually has a whole pile of limitations on file names, all of which 
you could warn about in Fossil under the same argument:

- You can’t have a dot at the end of a file name. [1]

- There are a whole raft of illegal characters: < > : " / \ | ? and * plus 
ASCII 0 thru 31  [2]

- NTFS and FAT are case-insensitive in everyday use.  Therefore, Fossil 
arguably should warn on any operation that would create a collision on 
case-insensitive file systems. [3]



1. This is an ancient limitation inherited from DOS and FAT, where a dot at the 
end meant you wanted a file with no extension, which wasn’t legal until Windows 
NT came around.  CMD.EXE and Explorer seem to just eat the dot when you try to 
create such a file.  Cygwin can create an “a.” file, but then Notepad barfs if 
you try to open it, thinking you meant “a.txt” and Explorer fails to delete it, 
claiming it couldn’t find the file.  Such are the problems of attempting to 
support files with a dot at the end on Windows.

2. Contrast almost every Unix system, where the only illegal character in a 
file name is the forward slash.  Mac OS X is the only common exception, also 
disallowing colon because it was the path separator in Classic Mac OS, which 
carries over into OS X today via HFS+, and historically via Rosetta.  I expect 
that limitation is going away with APFS, but that’s just speculation.

3. Also applies to HFS+ on Mac OS X.
fossil-users mailing list

Reply via email to