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

Re: Rename multiple files in repository

From: Ryan Schmidt <subversion-2008c_at_ryandesign.com>
Date: Wed, 5 Nov 2008 14:23:47 -0600

On Nov 5, 2008, at 11:50, Gleason, Todd wrote:

>> I have to rename a few dozen files from upper to lower case.
>> Obviously this is not so straight forward on Windows, so I would
>> prefer doing this directly in the repository. However, as far as I
>> can see that works for one file at a time only, resulting in as many
>> commits. Is that so or is there some way to have it all in one?
>>
>> I thought about a Knoppix live CD, but even if it had SCN loaded
>> and were able to connect to the repository and check out a WC
>> this still would be on an NTFS filesystem. I have no full meal Linux
>> setup available and no spare partition I could feed Knoppix with.
>>
>> Another attempt was to check out to a Linkstation (NAS) which
>> runs some embedded Linux and reportedly ext2 filesystem served
>> through Samba, but both SVN and TSVN failed by renaming "a file
>> onto itself". Obviously the Windows peculiarity prevails here over
>> the *nix peculiarity. The Linkstation is not hacked, thus no
>> shell or
>> telnet access as far as I know about.
>
> I have to admit that it doesn't make sense to me that Windows is that
> peculiar here. The filesystem may be case-insensitive, but it does
> preserve case, and besides, don't the .svn folders store all the
> actions
> you want to commit? I don't understand why you shouldn't be able
> to do
> "svn mv foo FOO" so long as there isn't an existing FOO (and in
> Windows
> there can't be). The resulting "svn: Cannot move path 'foo' into
> itself" error to me is best characterized as a bug, rather than a
> platform limitation. I can type "ren foo FOO" with no trouble
> whatsoever, after all.
>
> Now you can get into some weird errors if you have case-conflicts
> in the
> repo ("foo" and "FOO" in the same directory) and this is a Windows
> limitation (one which can cause silent corrupting of your WC or else a
> failure to checkout, depending on how you checkout/update). The
> behavior here is still suboptimal--it seems svn should detect what has
> happened and error out instead of silently corrupting your WC--but
> this
> is a rare problem (and not the point of your question either).

It has never been a Windows problem. It has always been a case-
insensitive-filesystem problem. Case-insensitive filesystems just
happen to be used by most Windows and Mac OS X users.

It is understandable why Subversion encounters a problem renaming a
file only in case, since as far as it can tell, both foo and FOO do
exist. However, it is still a Subversion bug, simply one which nobody
has been bothered enough to fix up to this point. If you have code
suggestions for how the bug could be fixed without causing undue
performance penalties, I'm sure the developers would be receptive to
incorporating it.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-11-05 21:24:18 CET

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

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