Author: rhuijben
Date: Tue Jan 8 13:24:19 2013
New Revision: 1430273
URL: http://svn.apache.org/viewvc?rev=1430273&view=rev
Log:
Following up on the deprecation of svn_wc_move(), make the metadata_only
feature available via the new in 1.8 svn_client_move7().
* subversion/include/svn_client.h
(svn_client_move7): Add argument.
(svn_client_move6): Update documentation.
* subversion/libsvn_client/copy.c
(do_wc_to_wc_moves_with_locks2,
do_wc_to_wc_moves_with_locks1,
do_wc_to_wc_moves): Forward metadata_only by adding arguments.
(try_copy): Add metadata_only support.
(svn_client_copy6): Update caller.
(svn_client_move7): Add argument.
* subversion/libsvn_client/deprecated.c
(svn_client_move6): Update caller.
* subversion/svn/move-cmd.c
(svn_cl__move): Update caller.
Modified:
subversion/trunk/subversion/include/svn_client.h
subversion/trunk/subversion/libsvn_client/copy.c
subversion/trunk/subversion/libsvn_client/deprecated.c
subversion/trunk/subversion/svn/move-cmd.c
Modified: subversion/trunk/subversion/include/svn_client.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client.h?rev=1430273&r1=1430272&r2=1430273&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_client.h (original)
+++ subversion/trunk/subversion/include/svn_client.h Tue Jan 8 13:24:19 2013
@@ -4510,6 +4510,12 @@ svn_client_copy(svn_client_commit_info_t
* allowed. This parameter should be set to FALSE except where backwards
* compatibility to svn_client_move6() is required.
*
+ * If @a metadata_only is @c TRUE and moving a file in a working copy,
+ * everything in the metadata is updated as if the node is moved, but the
+ * actual disk move operation is not performed. This feature is useful for
+ * clients that want to keep the working copy in sync while the actual working
+ * copy is updated by some other task.
+ *
* If non-NULL, @a revprop_table is a hash table holding additional,
* custom revision properties (<tt>const char *</tt> names mapped to
* <tt>svn_string_t *</tt> values) to be set on the new revision in
@@ -4538,6 +4544,7 @@ svn_client_move7(const apr_array_header_
svn_boolean_t move_as_child,
svn_boolean_t make_parents,
svn_boolean_t allow_mixed_revisions,
+ svn_boolean_t metadata_only,
const apr_hash_t *revprop_table,
svn_commit_callback2_t commit_callback,
void *commit_baton,
@@ -4546,7 +4553,7 @@ svn_client_move7(const apr_array_header_
/**
* Similar to svn_client_move7(), but with allow_mixed_revisions always
- * set to @c TRUE.
+ * set to @c TRUE and record_only always to @c FALSE.
*
* @since New in 1.7.
* @deprecated Provided for backward compatibility with the 1.7 API.
Modified: subversion/trunk/subversion/libsvn_client/copy.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/copy.c?rev=1430273&r1=1430272&r2=1430273&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/copy.c (original)
+++ subversion/trunk/subversion/libsvn_client/copy.c Tue Jan 8 13:24:19 2013
@@ -245,6 +245,7 @@ do_wc_to_wc_moves_with_locks2(svn_client
svn_boolean_t lock_src,
svn_boolean_t lock_dst,
svn_boolean_t allow_mixed_revisions,
+ svn_boolean_t metadata_only,
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool)
{
@@ -254,7 +255,7 @@ do_wc_to_wc_moves_with_locks2(svn_client
scratch_pool);
SVN_ERR(svn_wc__move2(ctx->wc_ctx, pair->src_abspath_or_url,
- dst_abspath, FALSE /* metadata_only */,
+ dst_abspath, metadata_only,
allow_mixed_revisions,
ctx->cancel_func, ctx->cancel_baton,
ctx->notify_func2, ctx->notify_baton2,
@@ -270,18 +271,21 @@ do_wc_to_wc_moves_with_locks1(svn_client
svn_boolean_t lock_src,
svn_boolean_t lock_dst,
svn_boolean_t allow_mixed_revisions,
+ svn_boolean_t metadata_only,
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool)
{
if (lock_dst)
SVN_WC__CALL_WITH_WRITE_LOCK(
do_wc_to_wc_moves_with_locks2(pair, dst_parent_abspath, lock_src,
- lock_dst, allow_mixed_revisions, ctx,
- scratch_pool),
+ lock_dst, allow_mixed_revisions,
+ metadata_only,
+ ctx, scratch_pool),
ctx->wc_ctx, dst_parent_abspath, FALSE, scratch_pool);
else
SVN_ERR(do_wc_to_wc_moves_with_locks2(pair, dst_parent_abspath, lock_src,
lock_dst, allow_mixed_revisions,
+ metadata_only,
ctx, scratch_pool));
return SVN_NO_ERROR;
@@ -293,6 +297,7 @@ static svn_error_t *
do_wc_to_wc_moves(const apr_array_header_t *copy_pairs,
const char *dst_path,
svn_boolean_t allow_mixed_revisions,
+ svn_boolean_t metadata_only,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
@@ -348,13 +353,16 @@ do_wc_to_wc_moves(const apr_array_header
SVN_WC__CALL_WITH_WRITE_LOCK(
do_wc_to_wc_moves_with_locks1(pair, pair->dst_parent_abspath,
lock_src, lock_dst,
- allow_mixed_revisions, ctx, iterpool),
+ allow_mixed_revisions,
+ metadata_only,
+ ctx, iterpool),
ctx->wc_ctx, src_parent_abspath,
FALSE, iterpool);
else
SVN_ERR(do_wc_to_wc_moves_with_locks1(pair, pair->dst_parent_abspath,
lock_src, lock_dst,
allow_mixed_revisions,
+ metadata_only,
ctx, iterpool));
}
@@ -1876,6 +1884,7 @@ try_copy(const apr_array_header_t *sourc
const char *dst_path_in,
svn_boolean_t is_move,
svn_boolean_t allow_mixed_revisions,
+ svn_boolean_t metadata_only,
svn_boolean_t make_parents,
svn_boolean_t ignore_externals,
const apr_hash_t *revprop_table,
@@ -2167,9 +2176,15 @@ try_copy(const apr_array_header_t *sourc
if (is_move)
return svn_error_trace(do_wc_to_wc_moves(copy_pairs, dst_path_in,
allow_mixed_revisions,
+ metadata_only,
ctx, pool));
else
- return svn_error_trace(do_wc_to_wc_copies(copy_pairs, ctx, pool));
+ {
+ /* We ignore these values, so assert the default value */
+ SVN_ERR_ASSERT(allow_mixed_revisions == TRUE
+ && metadata_only == FALSE);
+ return svn_error_trace(do_wc_to_wc_copies(copy_pairs, ctx, pool));
+ }
}
else if ((! srcs_are_urls) && (dst_is_url))
{
@@ -2217,6 +2232,7 @@ svn_client_copy6(const apr_array_header_
err = try_copy(sources, dst_path,
FALSE /* is_move */,
TRUE /* allow_mixed_revisions */,
+ FALSE /* metadata_only */,
make_parents,
ignore_externals,
revprop_table,
@@ -2249,6 +2265,7 @@ svn_client_copy6(const apr_array_header_
: svn_dirent_join(dst_path, src_basename, subpool),
FALSE /* is_move */,
TRUE /* allow_mixed_revisions */,
+ FALSE /* metadata_only */,
make_parents,
ignore_externals,
revprop_table,
@@ -2268,6 +2285,7 @@ svn_client_move7(const apr_array_header_
svn_boolean_t move_as_child,
svn_boolean_t make_parents,
svn_boolean_t allow_mixed_revisions,
+ svn_boolean_t metadata_only,
const apr_hash_t *revprop_table,
svn_commit_callback2_t commit_callback,
void *commit_baton,
@@ -2302,8 +2320,9 @@ svn_client_move7(const apr_array_header_
err = try_copy(sources, dst_path,
TRUE /* is_move */,
allow_mixed_revisions,
+ metadata_only,
make_parents,
- FALSE,
+ FALSE /* ignore_externals */,
revprop_table,
commit_callback, commit_baton,
ctx,
@@ -2333,8 +2352,9 @@ svn_client_move7(const apr_array_header_
: svn_dirent_join(dst_path, src_basename, pool),
TRUE /* is_move */,
allow_mixed_revisions,
+ metadata_only,
make_parents,
- FALSE,
+ FALSE /* ignore_externals */,
revprop_table,
commit_callback, commit_baton,
ctx,
Modified: subversion/trunk/subversion/libsvn_client/deprecated.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/deprecated.c?rev=1430273&r1=1430272&r2=1430273&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/deprecated.c (original)
+++ subversion/trunk/subversion/libsvn_client/deprecated.c Tue Jan 8 13:24:19
2013
@@ -744,7 +744,8 @@ svn_client_move6(const apr_array_header_
{
return svn_error_trace(svn_client_move7(src_paths, dst_path,
move_as_child, make_parents,
- TRUE, /* allow_mixed_revisions */
+ TRUE /* allow_mixed_revisions */,
+ FALSE /* metadata_only */,
revprop_table,
commit_callback, commit_baton,
ctx, pool));
Modified: subversion/trunk/subversion/svn/move-cmd.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/move-cmd.c?rev=1430273&r1=1430272&r2=1430273&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/move-cmd.c (original)
+++ subversion/trunk/subversion/svn/move-cmd.c Tue Jan 8 13:24:19 2013
@@ -85,8 +85,10 @@ svn_cl__move(apr_getopt_t *os,
SVN_ERR(svn_cl__eat_peg_revisions(&targets, targets, pool));
err = svn_client_move7(targets, dst_path,
- TRUE, opt_state->parents,
- opt_state->allow_mixed_rev,
+ TRUE /* move_as_child */,
+ opt_state->parents /* make_parents */,
+ opt_state->allow_mixed_rev /* allow_mixed_revisions*/,
+ FALSE /* metadata_only */,
opt_state->revprop_table,
(opt_state->quiet ? NULL : svn_cl__print_commit_info),
NULL, ctx, pool);