You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2013/11/04 15:31:10 UTC
svn commit: r1538623 -
/subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c
Author: rhuijben
Date: Mon Nov 4 14:31:09 2013
New Revision: 1538623
URL: http://svn.apache.org/r1538623
Log:
Properly reset an sqlite statement to avoid an abort() in a testcase that
I'm working on. This error can happen when a move node is already involved
in a different tree conflict.
* subversion/libsvn_wc/wc_db_update_move.c
(resolve_delete_raise_moved_away): Reset sql statement when adding a
conflict fails.
Modified:
subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c
Modified: subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c?rev=1538623&r1=1538622&r2=1538623&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c Mon Nov 4 14:31:09 2013
@@ -2337,6 +2337,7 @@ resolve_delete_raise_moved_away(svn_wc__
SVN_ERR(svn_sqlite__step(&have_row, stmt));
while(have_row)
{
+ svn_error_t *err;
const char *moved_relpath = svn_sqlite__column_text(stmt, 0, NULL);
const char *move_root_dst_relpath = svn_sqlite__column_text(stmt, 1,
NULL);
@@ -2344,15 +2345,18 @@ resolve_delete_raise_moved_away(svn_wc__
NULL);
svn_pool_clear(iterpool);
- SVN_ERR(mark_tree_conflict(moved_relpath,
- wcroot, db, old_version, new_version,
- move_root_dst_relpath, operation,
- svn_node_dir /* ### ? */,
- svn_node_dir /* ### ? */,
- moved_dst_repos_relpath,
- svn_wc_conflict_reason_moved_away,
- action, local_relpath,
- iterpool));
+ err = mark_tree_conflict(moved_relpath,
+ wcroot, db, old_version, new_version,
+ move_root_dst_relpath, operation,
+ svn_node_dir /* ### ? */,
+ svn_node_dir /* ### ? */,
+ moved_dst_repos_relpath,
+ svn_wc_conflict_reason_moved_away,
+ action, local_relpath,
+ iterpool);
+
+ if (err)
+ return svn_error_compose_create(err, svn_sqlite__reset(stmt));
SVN_ERR(svn_sqlite__step(&have_row, stmt));
}