Index: subversion/include/svn_error_codes.h =================================================================== --- subversion/include/svn_error_codes.h (revision 15130) +++ subversion/include/svn_error_codes.h (working copy) @@ -379,6 +379,9 @@ SVN_ERR_WC_CATEGORY_START + 23, "Invalid schedule") + SVN_ERRDEF (SVN_ERR_WC_NOT_NONEXISTENT_PATH, + SVN_ERR_WC_CATEGORY_START + 24, + "Path does not exist") /* fs errors */ SVN_ERRDEF (SVN_ERR_FS_GENERAL, Index: subversion/libsvn_wc/adm_ops.c =================================================================== --- subversion/libsvn_wc/adm_ops.c (revision 15130) +++ subversion/libsvn_wc/adm_ops.c (working copy) @@ -654,7 +654,8 @@ switch (kind) { case svn_node_none: - /* Nothing to do. */ + case svn_node_unknown: + return svn_error_create (SVN_ERR_WC_NOT_NONEXISTENT_PATH, 0, NULL); break; default: Index: subversion/libsvn_client/delete.c =================================================================== --- subversion/libsvn_client/delete.c (revision 15130) +++ subversion/libsvn_client/delete.c (working copy) @@ -30,6 +30,7 @@ #include "svn_error.h" #include "svn_path.h" #include "client.h" +#include "svn_cmdline.h" #include "svn_private_config.h" @@ -239,6 +240,9 @@ svn_client_ctx_t *ctx, apr_pool_t *pool) { + svn_error_t *err; + svn_boolean_t success = FALSE; + if (! paths->nelts) return SVN_NO_ERROR; @@ -268,15 +272,30 @@ SVN_ERR (svn_wc_adm_open3 (&adm_access, NULL, parent_path, TRUE, 0, ctx->cancel_func, ctx->cancel_baton, subpool)); - SVN_ERR (svn_client__wc_delete (path, adm_access, force, - FALSE, - ctx->notify_func2, - ctx->notify_baton2, - ctx, subpool)); + err = svn_client__wc_delete (path, adm_access, force, + FALSE, + ctx->notify_func2, + ctx->notify_baton2, + ctx, subpool); + if (err) + { + if (err->apr_err == SVN_ERR_WC_NOT_NONEXISTENT_PATH) + svn_cmdline_printf ( + pool, "Skipped, '%s' is not under version control\n", + svn_path_local_style (path, pool)); + else + SVN_ERR(err); + } + else + success = TRUE; + SVN_ERR (svn_wc_adm_close (adm_access)); } svn_pool_destroy (subpool); } - return SVN_NO_ERROR; + if (success) + return SVN_NO_ERROR; + else + return err; }