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

Re: 1.5 Neon bug in copy-on-update

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: Tue, 01 Apr 2008 15:03:35 -0400

Any chance you'd be willing to bang out an update_tests.py addition that
tests the cases that concern you?

David Glasser wrote:
> I'm guessing it would, though as I mentioned there's probably more
> necessary (eg, for delete_entry on added directories). I'm not
> familiar with the details of the DAV report in question.
>
> --dave
>
> On Tue, Apr 1, 2008 at 10:37 AM, C. Michael Pilato <cmpilato_at_collab.net> wrote:
>> Does the naive tweak help?
>>
>> Index: subversion/libsvn_ra_neon/fetch.c
>> ===================================================================
>> --- subversion/libsvn_ra_neon/fetch.c (revision 30139)
>> +++ subversion/libsvn_ra_neon/fetch.c (working copy)
>> @@ -1307,6 +1307,7 @@
>> || child == ELEM_add_directory
>> || child == ELEM_absent_file
>> || child == ELEM_add_file
>> + || child == ELEM_remove_prop
>> || child == ELEM_set_prop
>> || child == ELEM_SVN_prop
>> || child == ELEM_checked_in)
>> @@ -1330,6 +1331,7 @@
>> if (child == ELEM_checked_in
>> || child == ELEM_txdelta
>> || child == ELEM_set_prop
>> + || child == ELEM_remove_prop
>> || child == ELEM_SVN_prop)
>> return child;
>> else
>>
>>
>>
>> David Glasser wrote:
>> > Here's today's episode of "Subversion WebDAV RA tries to be too smart
>> > for its own good instead of just serializing RA API calls like
>> > ra_svn"!
>> >
>> > Before 1.5, server never sent add-with-history to clients, so it would
>> > never make sense for a "remove prop" XML element to be inside an "add
>> > file" element.
>> >
>> > And in fact, libsvn_ra_neon/fetch.c(validate_element) tries to
>> > validate this, throwing a corrupted XML error if (among many other
>> > things) an ELEM_remove_prop is inside an ELEM_add_file. This breaks
>> > the update. (Similar issues presumably include remove-prop inside
>> > add-directory, and delete-entry inside add-directory, but perhaps many
>> > more combinations as well.)
>> >
>> > To reproduce, do something like:
>> >
>> > $ svn ps foo bar a
>> > $ svn ci
>> > Revision 10.
>> > $ svn cp a b
>> > $ svn pd foo b
>> > $ svn ci
>> > Revision 11.
>> > $ svn up -r10
>> > $ svn up -r11
>> >
>> > I have no idea if serf has this bug; I've just verified that ra_svn
>> > and ra_local don't.
>> >
>> > I don't really know enough about Neon to feel comfortable trying to
>> > fix this, but it's a serious 1.5-blocker of a bug.
>> >
>> > --dave
>> >
>>
>>
>> --
>> C. Michael Pilato <cmpilato_at_collab.net>
>> CollabNet <> www.collab.net <> Distributed Development On Demand
>>
>>
>
>
>

-- 
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

Received on 2008-04-01 21:03:46 CEST

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.