[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: John Szakmeister <john_at_szakmeister.net>
Date: 2004-12-23 01:28:59 CET

On Wednesday 22 December 2004 16:20, Scott Palmer wrote:
[snip]
> On windows if you have a file "Abc" and you rename it to "abc" in the
> local filesystem it just works. There is no reason to not allow this
> as long as something named "file" does not already exist in the working
> copy which is impossible on Windows anyway. It seems there is a bug in
> Subversion in that it tries to access "abc" -- which on windows
> successfully accesses "Abc", and then Subversion gets confused about
> the existence of the target name, when it fact it is detecting a bogus
> conflict with the source name.
>
> Surely THAT can be easily fixed?

I think this problem partly stems from the fact that mv/ren is implemented
as a delete with copy+history. What ends up happening is that both are
still in the text-base, and we collide. For example:

  $touch a
  $svn ci -m '' a
  $svn mv a A
  $ls
   A
  $ls .svn/text-base
   a.svn-base A.svn-base

When working on a case-insensitive file system, we'd collide on the 'svn
mv' command because a.svn-base already exists. Fixing this involves
changes to the WC library, which is probably one of the most difficult
components of Subversion to understand. It also probably means we need
to bump the WC format, which the poses some problems related to version
compatibility. This problem is by no means simple, which is probably why
it's been in the issue tracker for as long as it has. However, I too
would like to see this fixed. So, if we can get some clear direction as
to where to go with it, I'll volunteer some of my time to help do the
task.

-John

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Dec 23 01:30:25 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.