Philip Martin <philip.mar...@wandisco.com> writes: > Now I can reproduce the error.
So the problem occurs when we have a patch file with one item that adds two levels of directories and another item that deletes a file: Index: wc/A/B/f =================================================================== --- wc/A/B/f (revision 0) +++ wc/A/B/f (working copy) @@ -0,0 +1 @@ +foo Index: wc/f =================================================================== --- wc/f (revision 1) +++ wc/f (working copy) @@ -1 +0,0 @@ -5 $ svn patch --dry-run --strip 1 x.x wc A wc/A A wc/A/B A wc/A/B/f D wc/f svn: E155010: The node '/home/pm/sw/subversion/obj/wc/A' was not found. The following appears to work: Index: subversion/libsvn_client/patch.c =================================================================== --- subversion/libsvn_client/patch.c (revision 1231875) +++ subversion/libsvn_client/patch.c (working copy) @@ -2718,7 +2718,7 @@ empty_dirs = apr_hash_make(scratch_pool); non_empty_dirs = apr_hash_make(scratch_pool); iterpool = svn_pool_create(scratch_pool); - for (i = 0; i < targets_info->nelts; i++) + for (i = 0; i < deleted_targets->nelts; i++) { svn_boolean_t parent_empty; patch_target_info_t *target_info; @@ -2729,7 +2729,7 @@ if (ctx->cancel_func) SVN_ERR(ctx->cancel_func(ctx->cancel_baton)); - target_info = APR_ARRAY_IDX(targets_info, i, patch_target_info_t *); + target_info = APR_ARRAY_IDX(deleted_targets, i, patch_target_info_t *); parent = svn_dirent_dirname(target_info->local_abspath, iterpool); -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com