The Ruby bindings are failing during check-swig-rb on the buildbots for
trunk. This has been happening since r1293375, which changed the way
property diffs are reported during replay. As far as I can tell this is
a problem with the bindings rather than the core Subversion code.
The test deletes and commits, along with other changes, a property 'AAA'
with value 'BBB' from file '/diff1.txt'. I've added some print
statements to the Ruby and I see this for the test at r1293374:
test_diff(SvnInfoTest): ChangedEditor.change_file_prop:diff1.txt:AAA:nil
ChangedEditor.close_file:diff1.txt:update
ChangedEditor.close_file:diff2.txt:nil
ChangedEditor.change_file_prop:nil:XXX:YYY
ChangedEditor.close_file:nil:update
ChangedEditor.close_file:nil:nil
ChangedEditor.close_edit:diff1.txtdiff2.txt
get_diff_recurse::false:false
get_diff_recurse:/diff1.txt:true:true # it's a file with prop_mod
get_prop_diff:/diff1.txt:AAABBB
Property.diffs2::AAABBB
get_diff_recurse:/diff2.txt:true:false
get_diff_recurse:/diff4.txt:true:true
get_prop_diff:/diff4.txt:
Property.diffs2:XXXYYY:
get_diff_recurse:/diff5.txt:true:false
.
At r1293375 I see this:
test_diff(SvnInfoTest): ChangedEditor.change_file_prop:diff1.txt:AAA:nil
ChangedEditor.close_file:diff1.txt:update
ChangedEditor.close_file:diff2.txt:nil
ChangedEditor.change_file_prop:nil:XXX:YYY
ChangedEditor.close_file:nil:update
ChangedEditor.close_file:nil:nil
ChangedEditor.close_edit:diff1.txtdiff2.txt
get_diff_recurse::false:false
get_diff_recurse:/diff1.txt:true:false # it's a file, no prop_mod
get_diff_recurse:/diff2.txt:true:false
get_diff_recurse:/diff4.txt:true:true
get_prop_diff:/diff4.txt:
Property.diffs2:XXXYYY:
get_diff_recurse:/diff5.txt:true:false
F
So in both cases the property delete is getting into the Ruby bindings
at ChangedEditor.change_file_prop, but gets lost by the time
get_diff_recurse is reached.
I don't know enough Ruby to fix this.
--
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com
Received on 2012-03-09 11:45:10 CET