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

Re: [BUGREPORT] svn move

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2002-06-09 05:52:20 CEST

anders@gnulinux.dk writes:

> We wanted to rename a directory and one did the following:
>
> svn mv originals xml
> svn ci -m "omdoebt"
>
> When others did an update they got the following error:
>
> svn update
> A ./xml
>
> svn_error: #21066 : <Filesystem has no item>
>
> file not found: revision 15', path /xml/java.xml'
>
> The repository is at revision 34.

Okay, now I'm worried that there's something profoundly wrong with our
new vsn-rsc-urls. I don't know why none of us saw this coming. :-(

Here's what I did to reproduce this bug:

  1. svn co -r33 http://www.gnulinux.dk/svn/gentoo-doc-dk
      [because presuably r34 was the revision where the directory was
      renamed]

  2. start ethereal

  3. svn up [expecting to see a rename of 'originals' dir to 'xml']

I get the same error, and looking at the ethereal trace, I think I
understand why.

You see, the server's response to the update REPORT request is a nice
dir_delta drive, part of which looks like this:

<S:add-directory name="xml">
  <D:checked-in>
    <D:href>/svn/gentoo-doc-dk/!svn/ver/34/xml</D:href>
  </D:checked-in>
 <S:add-file name="java.xml">
    <D:checked-in>
        <D:href>/svn/gentoo-doc-dk/!svn/ver/15/xml/java.xml</D:href>
   </D:checked-in>

Okay, it makes sense that we're adding a new directory 'xml'... later
on there is a command to delete the 'originals' directory. And it
makes sense that it has a CR/path of "34/xml".

Now look at its child file 'java.xml'. That file has been around ever
since r15, thus its CR is 15. But the path part is wrong: there *is*
no path 'xml/java.xml' in r15, as the fs rightly complains.

It seems that when mod_dav_svn generates a new vsn-rsc-url, it needs
to find the *original* path of the file in r15... it can't go using
the newly renamed path of r34. Either that, or just use
'34/xml/java.xml' and screw the CR thing.

Cmpilato, is this easy to do? Obviously, we didn't used to have this
problem back when we used id_t's. The code that generates
vsn-rsc-urls is mod_dav_svn/util.c:dav_svn_build_uri(). It obviously
needs to do more work, it's very simple right now. :-)

Thoughts?

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun Jun 9 05:54:13 2002

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