I've added my thoughts to the issue [1]; essentially, I've observed that svn 1.6 stores tree_conflict_data="(foo bar)" where 1.7 stores tree_conflict_data="foo bar", and this patch makes 'svn upgrade' adjust accordingly.
I haven't tested upgrading from interim 1.7-dev formats, and I don't recall offhand at which point we made the transition to lose the extra level of (). Reviews welcome, otherwise I'll commit it in a few days. [[[ Fix issue #3840, "empty conflict description in db after update from 1.6". * subversion/libsvn_wc/entries.c (write_entry): Strip one level of skel-wrapping () from TREE_CONFLICT_DATA when upgrading entries. ]]] [[[ Index: subversion/libsvn_wc/entries.c =================================================================== --- subversion/libsvn_wc/entries.c (revision 1085641) +++ subversion/libsvn_wc/entries.c (working copy) @@ -1824,8 +1824,20 @@ write_entry(struct write_baton **entry_node, if (entry->tree_conflict_data) { + /* Issue #3840: 1.6 uses one pair of () more than we do, so + strip it. Thus, "()" becomes NULL and "((skel1) (skel2))" + becomes "(skel1) (skel2)". */ + svn_skel_t *skel; + actual_node = MAYBE_ALLOC(actual_node, scratch_pool); - actual_node->tree_conflict_data = entry->tree_conflict_data; + skel = svn_skel__parse(entry->tree_conflict_data, + strlen(entry->tree_conflict_data), + scratch_pool); + if (skel->children) + actual_node->tree_conflict_data = svn_skel__unparse(skel->children, + result_pool)->data; + else + actual_node->tree_conflict_data = NULL; } if (entry->file_external_path != NULL) ]]] [1] http://subversion.tigris.org/issues/show_bug.cgi?id=3840 Alan Wood wrote on Mon, Mar 21, 2011 at 23:52:20 +1300: > > On 21 Mar 2011 at 10:48, Stefan Sperling wrote: > > > On Mon, Mar 21, 2011 at 12:33:34PM +1300, Alan Wood wrote: > > > There should not have been any conflict data of any sort in this > > > working copy as I am the only developer and I have only every had > > > one working copy. > > > > That's not a valid assumption. > > It is possible to inflict tree conflicts upon yourself, with only > > one working copy: http://subversion.apache.org/faq.html#self-tree-conflict > > Thanks for the link. I had read this a while ago, but forgotton all about it. > > > > I hope someone may be able to plug this little hole in the upgrade > > > system. > > > > Looks like the upgrade code shouldn't insert empty conflict description > > skels into the DB. Can you file an issue that points to this mailing list > > thread, so that this doesn't fall through the cracks? Thanks. > > Filed issue# 3840 > http://subversion.tigris.org/issues/show_bug.cgi?id=3840 > > Sorry for the confusion with the version labels. > > > > > And thanks for testing! > No trouble, would like to have more time for it. > > Alan > > > > Alan Wood > > Napier > New Zealand > Phone +64 6 835 4505 >