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

Re: so many features!

From: Martin Tomes <lists_at_tomes.org>
Date: 2005-07-15 10:37:10 CEST

kfogel@collab.net wrote:
> Martin Tomes <lists@tomes.org> writes:
>>Please can there be proper handling of case insensitive files systems in
>>the client. The server side can be handled by a hook script, the client
>>cannot. Given the huge number of users of Subversion on the Windows
>>platform surely this must be considered important.
> Do we already have a complete written description of "proper handling"
> somewhere, or did you have a particular behavior in mind?

Currently if a file or directory name changes case in a working copy
Subversion loses that file:

play $ ls
README* bill.pas* fred.txt* sub/ ?bc.txt*
play $ svn status
play $ mv fred.txt FRED
play $ mv FRED FRED.txt
play $ svn status
? FRED.txt

On a case insensitive file system FRED.txt and fred.txt are the same
file and the Subversion client should know that. There are regular
exchanges (particularly on the TortoiseSVN list) about this type of
problem. Some IDEs have interesting ideas about file name case and can
change the case of a file for no good reason. It's no good saying it's
the fault of the IDE, people have to use them whether they like them or
not and they are not going to change. BTW, CVS handles this correctly.

There are also issues in the issue tracker about case insensitivity:

667 - This is either a MacOS X oddity or it is fixed, I tried this on
Windows using Subversion 1.2.0 and it gives a sensible error message.

1495 - This looks more serious to me, don't forget that *many* users of
Subversion will have only ever used windows so any issue like this will
confuse them totally - case sensitive file names and paths are a foreign
concept to them.

2010 - The proper solution to this is to not allow case clashes in the
repository which my check-case-insensitive script does.

In summary, on the Windows client all path comparisons should be done
case insensitive and the case of the checked out file should not have to
match its case in the repository or in the files under .svn (entries,
pristine copy etc.). No changes are required server side.

There are other more subtle issues with the Windows file system which
could also be handled by a hook script. There are names which are
'special' e.g., nul, com1, com2. Perhaps I should add detection of
these to check-case-insensitive.

I hope that helps clarify what I mean. I know that none of this is easy
but it does have to be done.

Martin Tomes
echo 'martin at tomes x org x uk'\
  | sed -e 's/ x /\./g' -e 's/ at /@/'
The Subversion Wiki is at http://www.subversionary.org/
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Jul 15 10:38:00 2005

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.