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);


Reply via email to