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