diff options
Diffstat (limited to 'subversion/libsvn_client/copy.c')
-rw-r--r-- | subversion/libsvn_client/copy.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/subversion/libsvn_client/copy.c b/subversion/libsvn_client/copy.c index c0501b9..000ae0c 100644 --- a/subversion/libsvn_client/copy.c +++ b/subversion/libsvn_client/copy.c @@ -385,6 +385,7 @@ static svn_error_t * verify_wc_dsts(const apr_array_header_t *copy_pairs, svn_boolean_t make_parents, svn_boolean_t is_move, + svn_boolean_t metadata_only, svn_client_ctx_t *ctx, apr_pool_t *result_pool, apr_pool_t *scratch_pool) @@ -435,8 +436,11 @@ verify_wc_dsts(const apr_array_header_t *copy_pairs, } /* Check that there is no unversioned obstruction */ - SVN_ERR(svn_io_check_path(pair->dst_abspath_or_url, &dst_kind, - iterpool)); + if (metadata_only) + dst_kind = svn_node_none; + else + SVN_ERR(svn_io_check_path(pair->dst_abspath_or_url, &dst_kind, + iterpool)); if (dst_kind != svn_node_none) { @@ -527,6 +531,7 @@ static svn_error_t * verify_wc_srcs_and_dsts(const apr_array_header_t *copy_pairs, svn_boolean_t make_parents, svn_boolean_t is_move, + svn_boolean_t metadata_only, svn_client_ctx_t *ctx, apr_pool_t *result_pool, apr_pool_t *scratch_pool) @@ -557,7 +562,7 @@ verify_wc_srcs_and_dsts(const apr_array_header_t *copy_pairs, scratch_pool)); } - SVN_ERR(verify_wc_dsts(copy_pairs, make_parents, is_move, ctx, + SVN_ERR(verify_wc_dsts(copy_pairs, make_parents, is_move, metadata_only, ctx, result_pool, iterpool)); svn_pool_destroy(iterpool); @@ -1727,8 +1732,8 @@ repos_to_wc_copy_locked(svn_boolean_t *timestamp_sleep, /* We've already checked for physical obstruction by a working file. But there could also be logical obstruction by an entry whose working file happens to be missing.*/ - SVN_ERR(verify_wc_dsts(copy_pairs, FALSE, FALSE, ctx, - scratch_pool, iterpool)); + SVN_ERR(verify_wc_dsts(copy_pairs, FALSE, FALSE, FALSE /* metadata_only */, + ctx, scratch_pool, iterpool)); /* Decide whether the two repositories are the same or not. */ { @@ -2210,7 +2215,7 @@ try_copy(svn_boolean_t *timestamp_sleep, if ((! srcs_are_urls) && (! dst_is_url)) { SVN_ERR(verify_wc_srcs_and_dsts(copy_pairs, make_parents, is_move, - ctx, pool, pool)); + metadata_only, ctx, pool, pool)); /* Copy or move all targets. */ if (is_move) |