>On Wed, 22 Dec 2004 20:16:08 +0100, Erik Huelsmann wrote:
>>What's your proposal?
> The server should store all paths in a case-sensitive manner.
Already does that.
>All clients (regardless of the platform) should be aware of concerns on
No. We already decided not to do that, because file naming conventions
are project policy, not repository constraing.
> and warn the user when necessary at commit time or
You can do this toay with a pre-commit hook.
> To override these warnings/errors, one could add a
>properties to the repository (on the server) which indicate if it is ok
>to disable some of the warnings.
Again, no properties. This logic belongs in a pre-commit hook.
> That is, if I commit two files "AB"
>and "ab" into a normal repository into the same directory, the client
>should warn me this might cause problems on case-insensitive platforms.
As I said, this is not acceptable behaviour for the client.
>If I then try checking out file "ab" under win32 but the server
>contains both "ab" and "AB" it should give me a warning about the other
Now that's tricky. You probably won't even be able to create such a
working copy on Windows.
> If under win32, I try checking out "aB" but both
>"ab" and "AB" exist, it should fail with an ERROR stating such a
>varient does not exist, but "ab" and "AB" do. If there is only one
>varient on checkout, the win32 client should be smart enough to realize
>that casing does not matter (but it should retain the server filename
>casing on checkout).
It does that.
> Now, if the server has the property:
>"all-clients-case-sensitive" set to true, then unix commits of the two
>different files that differ only by filename casing will not display a
>warning. If "all-clients-case-insensitive" is set to true, the unix
>commits will get an error.
> This covers all major cases off the top of my head. What do you
Apart from the fact that your specific solution violates our hands-off
policy -- but a lot could be done in a pre-commit hook -- the key
remaining question is:
Like I said, you can't have a case-insensitive comparison that will work
everywhere, because it's locale-dependent. At the very least, that means
you can't do the comparison on the server.
And before anyone starts talking about how "other version control
systems do this", well, ClearCase for one does not handle case
collisions at all, and you have to jump through all kinds of hoops to
P.S.: Not that I'd take CC as a good example most of the time, though.
To unsubscribe, e-mail: firstname.lastname@example.org
For additional commands, e-mail: email@example.com
Received on Wed Dec 22 22:21:39 2004