You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/01/30 13:17:51 UTC
svn commit: r1440368 -
/subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c
Author: stsp
Date: Wed Jan 30 12:17:51 2013
New Revision: 1440368
URL: http://svn.apache.org/viewvc?rev=1440368&view=rev
Log:
Notify deletion events from the update-move editor.
* subversion/libsvn_wc/wc_db_update_move.c
(tc_editor_delete): Notify deletions. Take care not to notify twice in case
the deleted node is tree-conflicted.
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=1440368&r1=1440367&r2=1440368&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db_update_move.c Wed Jan 30 12:17:51 2013
@@ -940,6 +940,7 @@ tc_editor_delete(void *baton,
svn_sqlite__stmt_t *stmt;
int op_depth = relpath_depth(b->move_root_dst_relpath);
svn_boolean_t is_conflicted;
+ svn_boolean_t must_delete_working_nodes = FALSE;
const char *local_abspath = svn_dirent_join(b->wcroot->abspath, relpath,
scratch_pool);
@@ -972,7 +973,6 @@ tc_editor_delete(void *baton,
SVN_ERR(svn_sqlite__step_done(stmt));
reason = svn_wc_conflict_reason_edited;
- is_conflicted = TRUE;
}
else
{
@@ -984,8 +984,9 @@ tc_editor_delete(void *baton,
SVN_ERR(svn_sqlite__step_done(stmt));
reason = svn_wc_conflict_reason_deleted;
- /* Don't set is_conflicted so working files/dirs are deleted. */
+ must_delete_working_nodes = TRUE;
}
+ is_conflicted = TRUE;
SVN_ERR(mark_tree_conflict(b, relpath,
/* ### kinds? */
svn_node_dir, svn_node_dir, reason,
@@ -1000,7 +1001,7 @@ tc_editor_delete(void *baton,
}
}
- if (!is_conflicted)
+ if (!is_conflicted || must_delete_working_nodes)
{
svn_boolean_t have_row;
apr_pool_t *iterpool = svn_pool_create(scratch_pool);
@@ -1058,6 +1059,13 @@ tc_editor_delete(void *baton,
iterpool, iterpool));
SVN_ERR(svn_wc__db_wq_add(b->db, b->wcroot->abspath, work_item,
iterpool));
+
+ if (b->notify_func && !is_conflicted)
+ SVN_ERR(update_move_list_add(b->wcroot, relpath,
+ svn_wc_notify_update_delete,
+ svn__node_kind_from_kind(del_kind),
+ svn_wc_notify_state_inapplicable,
+ svn_wc_notify_state_inapplicable));
svn_pool_destroy(iterpool);
}