svn_error_t * sbox_wc_delete(svn_test__sandbox_t *b, const char *path) { const char *abspath = sbox_wc_path(b, path); const char *dir_abspath = svn_dirent_dirname(abspath, b->pool); const char *lock_root_abspath; SVN_ERR(svn_wc__acquire_write_lock(&lock_root_abspath, b->wc_ctx, dir_abspath, FALSE, b->pool, b->pool)); SVN_ERR(svn_wc_delete4(b->wc_ctx, abspath, FALSE, TRUE, NULL, NULL, /* cancel baton + func */ NULL, NULL, /* notify baton + func */ b->pool)); SVN_ERR(svn_wc__release_write_lock(b->wc_ctx, lock_root_abspath, b->pool)); return SVN_NO_ERROR; }
static svn_error_t * delete_entry(const char *path, svn_revnum_t revision, void *parent_baton, apr_pool_t *scratch_pool) { struct dir_baton_t *pb = parent_baton; struct edit_baton_t *eb = pb->eb; const char *local_abspath; SVN_ERR(get_path(&local_abspath, eb->anchor_abspath, path, scratch_pool)); SVN_ERR(svn_wc_delete4(eb->wc_ctx, local_abspath, FALSE /*keep_local*/, TRUE /*delete_unversioned*/, NULL, NULL, /*cancellation*/ eb->notify_func, eb->notify_baton, scratch_pool)); return SVN_NO_ERROR; }