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 2011/04/08 15:47:04 UTC
svn commit: r1090248 - /subversion/trunk/subversion/libsvn_wc/update_editor.c
Author: rhuijben
Date: Fri Apr 8 13:47:04 2011
New Revision: 1090248
URL: http://svn.apache.org/viewvc?rev=1090248&view=rev
Log:
* subversion/libsvn_wc/update_editor.c
(do_entry_deletion): Remove unneeded prototype.
(complete_directory): Don't perform tree conflict detection, etc. when just
removing an 'hidden' node.
Modified:
subversion/trunk/subversion/libsvn_wc/update_editor.c
Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/update_editor.c?rev=1090248&r1=1090247&r2=1090248&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/update_editor.c Fri Apr 8 13:47:04 2011
@@ -609,13 +609,6 @@ make_dir_baton(struct dir_baton **d_p,
/* Forward declarations. */
static svn_error_t *
-do_entry_deletion(struct edit_baton *eb,
- const char *local_abspath,
- const char *their_url,
- svn_boolean_t shadowed,
- apr_pool_t *pool);
-
-static svn_error_t *
already_in_a_tree_conflict(svn_boolean_t *conflicted,
svn_wc__db_t *db,
const char *local_abspath,
@@ -687,13 +680,25 @@ complete_directory(struct edit_baton *eb
if (!err && status == svn_wc__db_status_excluded)
{
+ svn_skel_t *work_item;
/* There is a small chance that the explicit target of an update/
switch is gone in the repository, in that specific case the node
hasn't been re-added to the BASE tree by this update. If so, we
should get rid of this excluded node now. */
- SVN_ERR(do_entry_deletion(eb, eb->target_abspath, NULL, FALSE,
+ /* Issue a wq operation to delete the BASE_NODE data and to delete
+ actual nodes based on that from disk, but leave any WORKING_NODES
+ */
+ SVN_ERR(svn_wc__wq_build_base_remove(&work_item,
+ eb->db, eb->target_abspath,
+ FALSE,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_wq_add(eb->db, eb->target_abspath, work_item,
scratch_pool));
+
+ SVN_ERR(svn_wc__wq_run(eb->db, eb->target_abspath,
+ eb->cancel_func, eb->cancel_baton,
+ scratch_pool));
}
return SVN_NO_ERROR;