On 25 March 2011 at 19:19, Hyrum K Wright wrote
> On Fri, Mar 25, 2011 at 2:11 PM, C. Michael Pilato <[email protected]> 
> wrote:
>> On 03/25/2011 11:31 AM, Hyrum K Wright wrote:
>>> Neil,
>>> Thanks for the report.  In attempting to reproduce, I wasn't even able
>>> to get as far as comparing the dumpfiles, as svnrdump asserted
>>> somewhere in the process.  I opened issue 3844[1] to track this bug,
>>> and committed an XFailing test in r1085428.  I also marked the issue
>>> as important for a 1.7.0 release.
>>>
>>> -Hyrum
>>>
>>> [1] http://subversion.tigris.org/issues/show_bug.cgi?id=3844
>>
>> See r1085523.
> 
> Thanks, Mike.
> 
> Neil, when you get a chance, could you test a r1085523 and see if it
> fixes your problem?
> 
> Cheers,
> -Hyrum

Hi guys,

Sorry, but no cigar :( This probably fixes the assertion found by Hyrum, but 
doesn't address the original issue. The current test case added to the test 
suite addresses loading multiple propedits. That's good, but it's not 
sufficient. The heart of the issue is that a transaction with multiple 
propedits to a single path is *dumped* incorrectly. So for an original dump 
representation like this:

---
Node-path: 
Node-kind: dir
Node-action: change
Prop-content-length: 42
Content-length: 42

K 3
foo
V 3
bar
K 3
bar
V 3
baz
PROPS-END
---

The svnrdump output for the same transaction comes out like this:

---
Node-path: 
Node-kind: dir
Node-action: change
Prop-delta: true
Prop-content-length: 26
Content-length: 26

K 3
foo
V 3
bar
PROPS-END


Prop-delta: true
Prop-content-length: 26
Content-length: 26

K 3
bar
V 3
baz
PROPS-END
---

Note the second "orphaned" prop-delta.

It would be great if svnrdump produced exactly the same output as svnadmin 
(it'd make the test assertions nice and easy), but from a bit of 
experimentation (I haven't read the svnadmin code here) I don't believe that 
it's necessary for the two prop-deltas actually to be merged for the dumpfile 
to be valid. So if it's easier to repeat the preceding node-path information 
for each prop-delta then I guess that would be OK, as long as the net result is 
the same.

Thanks,
Neil

Reply via email to