[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Renaming files on win32

From: <brane_at_xbc.nu>
Date: 2004-12-22 22:02:46 CET

Gili wrote:

>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
>other platforms
>
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
>checkout time.
>
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
>varient's existance.
>
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
>think?
>
>
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:

    How?

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
fix them.

-- Brane

P.S.: Not that I'd take CC as a good example most of the time, though.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Dec 22 22:22:49 2004

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.