You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Jesse Guardiani <je...@wingnet.net> on 2006/04/11 20:57:04 UTC

linux server + win32 client, case sensitivity and symlinks

Hello,

I'm running a 1.3.0-1 RHEL3 RPM server and the 1.3.0-setup.exe
CLI client on a Windows XP workstation. In trying to checkout a legacy
unix project on the win32 machine, I get this error:
   svn: In directory 'images'
   svn: Can't copy 'images\.svn\tmp\text-base\tony.JPG.svn-base' to 'images\tony.JP
   G.tmp': The system cannot find the file specified.

The issue appears to be that the repository contains two separate files:
   tony.JPG
   Tony.JPG

But since win32 is case insensitive, this doesn't translate well to
the filesystem. I've seen similar issues from the same project
regarding symlinks.

I've done a ton of reading on this, and judging from this message:
     http://svn.haxx.se/dev/archive-2003-05/1987.shtml

It appears that subversion just doesn't attempt to care about the
client filesystem's case sensitivity. So according to that, if
I need to develop on win32 for a linux server, then I need to go
with the least common denominator and avoid the use of case sensitive
filenames and symlinks altogether.

Is that an accurate assessment? Or am I missing something?


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: linux server + win32 client, case sensitivity and symlinks

Posted by Jesse Guardiani <je...@wingnet.net>.
Ryan Schmidt wrote:
> On Apr 11, 2006, at 22:57, Jesse Guardiani wrote:
> 
>> It appears that subversion just doesn't attempt to care about the
>> client filesystem's case sensitivity. So according to that, if
>> I need to develop on win32 for a linux server, then I need to go
>> with the least common denominator and avoid the use of case sensitive
>> filenames and symlinks altogether.
>>
>> Is that an accurate assessment? Or am I missing something?
> 
> That's accurate. It's advisable therefore to install a pre-commit hook 
> preventing commits of files whose names would cause such case 
> collisions. A hook script which implements this behavior is provided in 
> the Subversion repository. See also this:
> 
> http://subversion.tigris.org/faq.html#case-change
> 
> The exercise of straightening out the mess of a large repository filled 
> with such case collisions is, unfortunately, left to the reader.


On linux, I found the case conflicts using simple shell tools
(where public_* contain the working copies I want to clean):

find public_* > all.txt
sort -d < all.txt  > sorted-all.txt
uniq -i < sorted-all.txt > pruned.txt
diff -u sorted-all.txt pruned.txt


Then I simply did an `svn rm filename` for each file I wanted to remove.
And finally `svn commit`. Pretty simple.

Thanks!


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: linux server + win32 client, case sensitivity and symlinks

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Apr 11, 2006, at 22:57, Jesse Guardiani wrote:

> It appears that subversion just doesn't attempt to care about the
> client filesystem's case sensitivity. So according to that, if
> I need to develop on win32 for a linux server, then I need to go
> with the least common denominator and avoid the use of case sensitive
> filenames and symlinks altogether.
>
> Is that an accurate assessment? Or am I missing something?

That's accurate. It's advisable therefore to install a pre-commit  
hook preventing commits of files whose names would cause such case  
collisions. A hook script which implements this behavior is provided  
in the Subversion repository. See also this:

http://subversion.tigris.org/faq.html#case-change

The exercise of straightening out the mess of a large repository  
filled with such case collisions is, unfortunately, left to the reader.

This is a problem on any filesystem that's case-insensitive, not just  
Windows, so this also applies to the default Mac OS X filesystem.  
Case-sensitive filesystems are available for Mac and Windows which  
can be a workaround for some. You may not even need to reformat your  
drive or add an extra drive. On Mac OS X, for instance, you can  
create a disk image with a case-sensitive file system and check your  
working copy out on that. Perhaps similar virtual-disk solutions  
exist for Windows; I just don't know.

There are a whole lot of other restrictions on filenames that are  
relevant for Windows machines too; see for example this message:

http://svn.haxx.se/users/archive-2006-01/0201.shtml

The very best idea would be to install a hook which prevents those as  
well.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: linux server + win32 client, case sensitivity and symlinks

Posted by Ulrich Eckhardt <ec...@satorlaser.com>.
On Tuesday 11 April 2006 22:57, Jesse Guardiani wrote:
> It appears that subversion just doesn't attempt to care about the
> client filesystem's case sensitivity. So according to that, if
> I need to develop on win32 for a linux server, then I need to go
> with the least common denominator and avoid the use of case sensitive
> filenames and symlinks altogether.
>
> Is that an accurate assessment? Or am I missing something?

Others already answered on the general thing, but there's one detail missing: 
It's not Linux which can differ files by just their case but it's Subversion. 
The point is that if the Subversion repository was located on a win32 machine 
and the server is running there, too, the problem would occur.

The behaviour of Subversion's filesystem does not change with the behaviour of 
its host's filesystem.

Uli

****************************************************
Visit our website at <http://www.domino-printing.com/>
****************************************************
This Email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this Email in error please notify the system manager.

This footnote also confirms that this Email message has been swept by MailSweeper for the presence of computer viruses.
****************************************************


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: linux server + win32 client, case sensitivity and symlinks

Posted by Simon Whittaker <si...@swbh.net>.
Jesse Guardiani wrote:
> Hello,
>
> <snip>

> It appears that subversion just doesn't attempt to care about the
> client filesystem's case sensitivity. So according to that, if
> I need to develop on win32 for a linux server, then I need to go
> with the least common denominator and avoid the use of case sensitive
> filenames and symlinks altogether.
>
> Is that an accurate assessment? Or am I missing something?
This is accurate - I have taken to using this  hook script:

http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/check-case-insensitive.pl

It works very well and should do everything that you need

Cheers

S

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: linux server + win32 client, case sensitivity and symlinks

Posted by Garrett Rooney <ro...@electricjellyfish.net>.
On 4/11/06, Jesse Guardiani <je...@wingnet.net> wrote:
> Hello,
>
> I'm running a 1.3.0-1 RHEL3 RPM server and the 1.3.0-setup.exe
> CLI client on a Windows XP workstation. In trying to checkout a legacy
> unix project on the win32 machine, I get this error:
>    svn: In directory 'images'
>    svn: Can't copy 'images\.svn\tmp\text-base\tony.JPG.svn-base' to 'images\tony.JP
>    G.tmp': The system cannot find the file specified.
>
> The issue appears to be that the repository contains two separate files:
>    tony.JPG
>    Tony.JPG
>
> But since win32 is case insensitive, this doesn't translate well to
> the filesystem. I've seen similar issues from the same project
> regarding symlinks.
>
> I've done a ton of reading on this, and judging from this message:
>      http://svn.haxx.se/dev/archive-2003-05/1987.shtml
>
> It appears that subversion just doesn't attempt to care about the
> client filesystem's case sensitivity. So according to that, if
> I need to develop on win32 for a linux server, then I need to go
> with the least common denominator and avoid the use of case sensitive
> filenames and symlinks altogether.
>
> Is that an accurate assessment? Or am I missing something?

That is accurate.  Similarly, you need to be careful to avoid creating
filenames that are "special" on win32, my personal favorite is
prn.something, which windows will interpret as a printer, but there
are others as well.

-garrett

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org