r1162033 | rhuijben | 2011-08-26 04:06:34 -0500 (Fri, 26 Aug 2011) Resolve segfault when retrieving svn_wc_entry_t on a binary conflict. Also fix a similar segfault in svn on printing conflicts. (Issue #3998) * subversion/libsvn_wc/entries.c (read_one_entry): Assume that conflict paths can be NULL. * subversion/svn/info-cmd.c (print_info): Assume that conflict paths can be NULL. Make conflict paths relative if possible. * subversion/tests/cmdline/info_tests.py (binary_tree_conflict): Remove XFail. Add issue number and update the conflict path verification to make the test pass. Cleanup whitespace Found by: Markus Schaber <msr{_AT_}schabi.de>
r1162024 | rhuijben | 2011-08-26 03:32:38 -0500 (Fri, 26 Aug 2011) Add reproduction recipe for a segfault using 'svn info' in 1.7.x. This same segfault can also be triggered by just retrieving svn_wc_entry_t for this node. * subversion/tests/cmdline/info_tests.py (binary_tree_conflict): New test. (test_list): Add binary_tree_conflict. Found by: Markus Schaber <msr{_AT_}schabi.de> (reported via SharpSvn)
r1160671 | rhuijben | 2011-08-23 08:12:20 -0500 (Tue, 23 Aug 2011) Resolve issue #3994, "Subversion working copies that contain 'svn lock'-style" locks cannot be upgraded. Do this by using a single sqlite handle for performing upgrades from entries to the wc-ng format. This makes it possible to use the normal svn_wc__db api while upgrading. This api usage used to work correctly before we optimized the performance of upgrades by using a transaction (r1136525). Before this patch the repository lock handling in the working copy verified if a node existed via one sqlite handle, but which was part of an uncommitted transaction in the other handle. (This is the cause of issue #3994) This moves more of the upgrade processing in a single transaction, so it might also improve performance a bit. * subversion/libsvn_wc/upgrade.c (svn_wc_upgrade): Update caller. Don't close the sqlite database directly as closing wc_db will do that now. * subversion/libsvn_wc/wc_db.c (svn_wc__db_upgrade_begin): Store the new sqlite handle in the now passed wc_db to allow using the standard wc_db api on the same database handle. * subversion/libsvn_wc/wc_db.h (svn_wc__db_upgrade_begin): Add some documentation. Update prototype. Found by: Markus Schaber <msr{_AT_}schabi.de>