Author: jcorvel
Date: Sat Jun  4 06:37:25 2011
New Revision: 1131326

URL: http://svn.apache.org/viewvc?rev=1131326&view=rev
Log:
Fix issue #3702 'Unable to perform case-only rename on windows' by adding an
new flag to svn_client_args_to_target_array (revving it in the process), so
it can perform specialized case-canonicalization behavior for supporting
case-only renames.

* subversion/tests/cmdline/copy_tests.py
  (case_only_rename): Remove XFail marker. Fix issue description according
   to the changed summary of issue #3702.

* subversion/include/svn_client.h
  (svn_client_args_to_target_array): Deprecate, succeeded by ...
  (svn_client_args_to_target_array2): ... new function, carrying a new
   argument KEEP_LAST_ORIGPATH_ON_TRUEPATH_COLLISION.

* subversion/libsvn_client/cmdline.c
  (svn_client_args_to_target_array2): Make use of new flag 
   KEEP_LAST_ORIGPATH_ON_TRUEPATH_COLLISION to undo truepath-conversion of
   the last of 2 targets if they both have the same 'truepath'.
   
* subversion/libsvn_client/deprecated.c
  (svn_client_args_to_target_array): Implement deprecated wrapper.

* subversion/tests/libsvn_client/client-test.c
  (test_args_to_target_array): Adjust caller, passing FALSE for
   KEEP_LAST_ORIGPATH_ON_TRUEPATH_COLLISION.

[in subversion/svn]

* add-cmd.c, blame-cmd.c, cat-cmd.c, changelist-cmd.c, checkout-cmd.c,
  cleanup-cmd.c, commit-cmd.c, copy-cmd.c, delete-cmd.c, diff-cmd.c,
  export-cmd.c, import-cmd.c, info-cmd.c, list-cmd.c, lock-cmd.c, log-cmd.c,
  merge-cmd.c, mergeinfo-cmd.c, mkdir-cmd.c, patch-cmd.c, propdel-cmd.c,
  propedit-cmd.c, propget-cmd.c, proplist-cmd.c, propset-cmd.c,
  relocate-cmd.c, resolve-cmd.c, resolved-cmd.c, revert-cmd.c, status-cmd.c,
  switch-cmd.c, unlock-cmd.c, update-cmd.c, upgrade-cmd.c:
  Adjust callers, passing FALSE for KEEP_LAST_ORIGPATH_ON_TRUEPATH_COLLISION.

* move-cmd.c: Adjust caller, passing TRUE for
  KEEP_LAST_ORIGPATH_ON_TRUEPATH_COLLISION.

* cl.h
  (svn_cl__args_to_target_array_print_reserved): Add new parameter
   KEEP_LAST_ORIGPATH_ON_TRUEPATH_COLLISION.

* util.c
  (svn_cl__args_to_target_array_print_reserved): Add new parameter
   KEEP_LAST_ORIGPATH_ON_TRUEPATH_COLLISION, passing it to 
   svn_client_args_to_target_array2.

Modified:
    subversion/trunk/subversion/include/svn_client.h
    subversion/trunk/subversion/libsvn_client/cmdline.c
    subversion/trunk/subversion/libsvn_client/deprecated.c
    subversion/trunk/subversion/svn/add-cmd.c
    subversion/trunk/subversion/svn/blame-cmd.c
    subversion/trunk/subversion/svn/cat-cmd.c
    subversion/trunk/subversion/svn/changelist-cmd.c
    subversion/trunk/subversion/svn/checkout-cmd.c
    subversion/trunk/subversion/svn/cl.h
    subversion/trunk/subversion/svn/cleanup-cmd.c
    subversion/trunk/subversion/svn/commit-cmd.c
    subversion/trunk/subversion/svn/copy-cmd.c
    subversion/trunk/subversion/svn/delete-cmd.c
    subversion/trunk/subversion/svn/diff-cmd.c
    subversion/trunk/subversion/svn/export-cmd.c
    subversion/trunk/subversion/svn/import-cmd.c
    subversion/trunk/subversion/svn/info-cmd.c
    subversion/trunk/subversion/svn/list-cmd.c
    subversion/trunk/subversion/svn/lock-cmd.c
    subversion/trunk/subversion/svn/log-cmd.c
    subversion/trunk/subversion/svn/merge-cmd.c
    subversion/trunk/subversion/svn/mergeinfo-cmd.c
    subversion/trunk/subversion/svn/mkdir-cmd.c
    subversion/trunk/subversion/svn/move-cmd.c
    subversion/trunk/subversion/svn/patch-cmd.c
    subversion/trunk/subversion/svn/propdel-cmd.c
    subversion/trunk/subversion/svn/propedit-cmd.c
    subversion/trunk/subversion/svn/propget-cmd.c
    subversion/trunk/subversion/svn/proplist-cmd.c
    subversion/trunk/subversion/svn/propset-cmd.c
    subversion/trunk/subversion/svn/relocate-cmd.c
    subversion/trunk/subversion/svn/resolve-cmd.c
    subversion/trunk/subversion/svn/resolved-cmd.c
    subversion/trunk/subversion/svn/revert-cmd.c
    subversion/trunk/subversion/svn/status-cmd.c
    subversion/trunk/subversion/svn/switch-cmd.c
    subversion/trunk/subversion/svn/unlock-cmd.c
    subversion/trunk/subversion/svn/update-cmd.c
    subversion/trunk/subversion/svn/upgrade-cmd.c
    subversion/trunk/subversion/svn/util.c
    subversion/trunk/subversion/tests/cmdline/copy_tests.py
    subversion/trunk/subversion/tests/libsvn_client/client-test.c

Modified: subversion/trunk/subversion/include/svn_client.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client.h?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_client.h (original)
+++ subversion/trunk/subversion/include/svn_client.h Sat Jun  4 06:37:25 2011
@@ -1018,6 +1018,10 @@ svn_client_create_context(svn_client_ctx
  * IRI-to-URI encoding and some auto-escaping, and canonicalize.  For a
  * local path: canonicalize case and path separators.
  *
+ * If @a keep_last_origpath_on_truepath_collision is TRUE, and there are
+ * exactly two targets which both case-canonicalize to the same path, the last
+ * target will be returned in the original non-case-canonicalized form.
+ *
  * Allocate @a *targets_p and its elements in @a pool.
  *
  * @a ctx is required for possible repository authentication.
@@ -1030,8 +1034,23 @@ svn_client_create_context(svn_client_ctx
  * error, and if this is the only type of error encountered, complete
  * the operation before returning the error(s).
  *
- * @since New in 1.6
+ * @since New in 1.7
+ */
+svn_error_t *
+svn_client_args_to_target_array2(apr_array_header_t **targets_p,
+                                 apr_getopt_t *os,
+                                 const apr_array_header_t *known_targets,
+                                 svn_client_ctx_t *ctx,
+                                 svn_boolean_t 
keep_last_origpath_on_truepath_collision,
+                                 apr_pool_t *pool);
+
+/*
+ * Similar to svn_client_args_to_target_array2() but with 
+ * @a keep_last_origpath_on_truepath_collision always set to FALSE.
+ *
+ * @deprecated Provided for backward compatibility with the 1.6 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_client_args_to_target_array(apr_array_header_t **targets_p,
                                 apr_getopt_t *os,

Modified: subversion/trunk/subversion/libsvn_client/cmdline.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/cmdline.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/cmdline.c (original)
+++ subversion/trunk/subversion/libsvn_client/cmdline.c Sat Jun  4 06:37:25 2011
@@ -158,11 +158,12 @@ check_root_url_of_target(const char **ro
 /* Note: This is substantially copied from svn_opt__args_to_target_array() in
  * order to move to libsvn_client while maintaining backward compatibility. */
 svn_error_t *
-svn_client_args_to_target_array(apr_array_header_t **targets_p,
-                                apr_getopt_t *os,
-                                const apr_array_header_t *known_targets,
-                                svn_client_ctx_t *ctx,
-                                apr_pool_t *pool)
+svn_client_args_to_target_array2(apr_array_header_t **targets_p,
+                                 apr_getopt_t *os,
+                                 const apr_array_header_t *known_targets,
+                                 svn_client_ctx_t *ctx,
+                                 svn_boolean_t 
keep_last_origpath_on_truepath_collision,
+                                 apr_pool_t *pool)
 {
   int i;
   svn_boolean_t rel_url_found = FALSE;
@@ -260,11 +261,27 @@ svn_client_args_to_target_array(apr_arra
               SVN_ERR(svn_opt__arg_canonicalize_path(&true_target,
                                                      true_target, pool));
 
-              /* If there was a truepath-conversion (which can happen on
-                 case-insensitive filesystems), check if there is an exact
-                 match in the wc-db (e.g. a scheduled-for-delete file only
-                 differing in case from an on-disk file).  If so, use that
-                 instead of the truepath converted variant. */
+              /* There are two situations in which a 'truepath-conversion'
+                 (case-canonicalization to on-disk path on case-insensitive
+                 filesystem) needs to be undone:
+              
+                 1. If KEEP_LAST_ORIGPATH_ON_TRUEPATH_COLLISION is TRUE, and
+                    this is the last target of a 2-element target list, and
+                    both targets have the same truepath. */
+              if (keep_last_origpath_on_truepath_collision
+                  && input_targets->nelts == 2 && i == 1
+                  && strcmp(original_target, true_target) != 0)
+                {
+                  const char *src_truepath = APR_ARRAY_IDX(output_targets,
+                                                           0,
+                                                           const char *);
+                  if (strcmp(src_truepath, true_target) == 0)
+                    true_target = original_target;
+                }
+
+              /* 2. If there is an exact match in the wc-db without a
+                    corresponding on-disk path (e.g. a scheduled-for-delete
+                    file only differing in case from an on-disk file). */
               if (strcmp(original_target, true_target) != 0)
                 {
                   const char *target_abspath;

Modified: subversion/trunk/subversion/libsvn_client/deprecated.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/deprecated.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/deprecated.c (original)
+++ subversion/trunk/subversion/libsvn_client/deprecated.c Sat Jun  4 06:37:25 
2011
@@ -369,6 +369,18 @@ svn_client_blame(const char *target,
                            receiver, receiver_baton, ctx, pool);
 }
 
+/*** From cmdline.c ***/
+svn_error_t *
+svn_client_args_to_target_array(apr_array_header_t **targets_p,
+                                apr_getopt_t *os,
+                                const apr_array_header_t *known_targets,
+                                svn_client_ctx_t *ctx,
+                                apr_pool_t *pool)
+{
+  return svn_client_args_to_target_array2(targets_p, os, known_targets, ctx,
+                                          FALSE, pool);
+}
+
 /*** From commit.c ***/
 svn_error_t *
 svn_client_import3(svn_commit_info_t **commit_info_p,

Modified: subversion/trunk/subversion/svn/add-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/add-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/add-cmd.c (original)
+++ subversion/trunk/subversion/svn/add-cmd.c Sat Jun  4 06:37:25 2011
@@ -55,7 +55,7 @@ svn_cl__add(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   if (! targets->nelts)
     return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);

Modified: subversion/trunk/subversion/svn/blame-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/blame-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/blame-cmd.c (original)
+++ subversion/trunk/subversion/svn/blame-cmd.c Sat Jun  4 06:37:25 2011
@@ -249,7 +249,7 @@ svn_cl__blame(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* Blame needs a file on which to operate. */
   if (! targets->nelts)

Modified: subversion/trunk/subversion/svn/cat-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/cat-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/cat-cmd.c (original)
+++ subversion/trunk/subversion/svn/cat-cmd.c Sat Jun  4 06:37:25 2011
@@ -53,7 +53,7 @@ svn_cl__cat(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* Cat cannot operate on an implicit '.' so a filename is required */
   if (! targets->nelts)

Modified: subversion/trunk/subversion/svn/changelist-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/changelist-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/changelist-cmd.c (original)
+++ subversion/trunk/subversion/svn/changelist-cmd.c Sat Jun  4 06:37:25 2011
@@ -62,7 +62,7 @@ svn_cl__changelist(apr_getopt_t *os,
   /* Parse the remaining arguments as paths. */
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* Changelist has no implicit dot-target `.', so don't you put that
      code here! */

Modified: subversion/trunk/subversion/svn/checkout-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/checkout-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/checkout-cmd.c (original)
+++ subversion/trunk/subversion/svn/checkout-cmd.c Sat Jun  4 06:37:25 2011
@@ -78,7 +78,7 @@ svn_cl__checkout(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   if (! targets->nelts)
     return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);

Modified: subversion/trunk/subversion/svn/cl.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/cl.h?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/cl.h (original)
+++ subversion/trunk/subversion/svn/cl.h Sat Jun  4 06:37:25 2011
@@ -736,6 +736,7 @@ svn_cl__args_to_target_array_print_reser
                                             apr_getopt_t *os,
                                             const apr_array_header_t 
*known_targets,
                                             svn_client_ctx_t *ctx,
+                                            svn_boolean_t 
keep_dest_origpath_on_truepath_collision,
                                             apr_pool_t *pool);
 
 /* Return a string allocated in POOL that is a copy of STR but with each

Modified: subversion/trunk/subversion/svn/cleanup-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/cleanup-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/cleanup-cmd.c (original)
+++ subversion/trunk/subversion/svn/cleanup-cmd.c Sat Jun  4 06:37:25 2011
@@ -52,7 +52,7 @@ svn_cl__cleanup(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* Add "." if user passed 0 arguments */
   svn_opt_push_implicit_dot_target(targets, pool);

Modified: subversion/trunk/subversion/svn/commit-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/commit-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/commit-cmd.c (original)
+++ subversion/trunk/subversion/svn/commit-cmd.c Sat Jun  4 06:37:25 2011
@@ -110,7 +110,7 @@ svn_cl__commit(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* Check that no targets are URLs */
   for (i = 0; i < targets->nelts; i++)

Modified: subversion/trunk/subversion/svn/copy-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/copy-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/copy-cmd.c (original)
+++ subversion/trunk/subversion/svn/copy-cmd.c Sat Jun  4 06:37:25 2011
@@ -53,7 +53,7 @@ svn_cl__copy(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
   if (targets->nelts < 2)
     return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);
 

Modified: subversion/trunk/subversion/svn/delete-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/delete-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/delete-cmd.c (original)
+++ subversion/trunk/subversion/svn/delete-cmd.c Sat Jun  4 06:37:25 2011
@@ -51,7 +51,7 @@ svn_cl__delete(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   if (! targets->nelts)
     return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);

Modified: subversion/trunk/subversion/svn/diff-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/diff-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/diff-cmd.c (original)
+++ subversion/trunk/subversion/svn/diff-cmd.c Sat Jun  4 06:37:25 2011
@@ -206,7 +206,7 @@ svn_cl__diff(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   if (! opt_state->old_target && ! opt_state->new_target
       && (targets->nelts == 2)
@@ -246,7 +246,7 @@ svn_cl__diff(apr_getopt_t *os,
                                                            const char *));
 
       SVN_ERR(svn_cl__args_to_target_array_print_reserved(&tmp2, os, tmp,
-                                                          ctx, pool));
+                                                          ctx, FALSE, pool));
       SVN_ERR(svn_opt_parse_path(&old_rev, &old_target,
                                  APR_ARRAY_IDX(tmp2, 0, const char *),
                                  pool));

Modified: subversion/trunk/subversion/svn/export-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/export-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/export-cmd.c (original)
+++ subversion/trunk/subversion/svn/export-cmd.c Sat Jun  4 06:37:25 2011
@@ -56,7 +56,7 @@ svn_cl__export(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* We want exactly 1 or 2 targets for this subcommand. */
   if (targets->nelts < 1)

Modified: subversion/trunk/subversion/svn/import-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/import-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/import-cmd.c (original)
+++ subversion/trunk/subversion/svn/import-cmd.c Sat Jun  4 06:37:25 2011
@@ -79,7 +79,7 @@ svn_cl__import(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   if (targets->nelts < 1)
     return svn_error_create

Modified: subversion/trunk/subversion/svn/info-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/info-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/info-cmd.c (original)
+++ subversion/trunk/subversion/svn/info-cmd.c Sat Jun  4 06:37:25 2011
@@ -556,7 +556,7 @@ svn_cl__info(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* Add "." if user passed 0 arguments. */
   svn_opt_push_implicit_dot_target(targets, pool);

Modified: subversion/trunk/subversion/svn/list-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/list-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/list-cmd.c (original)
+++ subversion/trunk/subversion/svn/list-cmd.c Sat Jun  4 06:37:25 2011
@@ -220,7 +220,7 @@ svn_cl__list(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* Add "." if user passed 0 arguments */
   svn_opt_push_implicit_dot_target(targets, pool);

Modified: subversion/trunk/subversion/svn/lock-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/lock-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/lock-cmd.c (original)
+++ subversion/trunk/subversion/svn/lock-cmd.c Sat Jun  4 06:37:25 2011
@@ -93,7 +93,7 @@ svn_cl__lock(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* We only support locking files, so '.' is not valid. */
   if (! targets->nelts)

Modified: subversion/trunk/subversion/svn/log-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/log-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/log-cmd.c (original)
+++ subversion/trunk/subversion/svn/log-cmd.c Sat Jun  4 06:37:25 2011
@@ -621,7 +621,7 @@ svn_cl__log(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* Add "." if user passed 0 arguments */
   svn_opt_push_implicit_dot_target(targets, pool);

Modified: subversion/trunk/subversion/svn/merge-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/merge-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/merge-cmd.c (original)
+++ subversion/trunk/subversion/svn/merge-cmd.c Sat Jun  4 06:37:25 2011
@@ -67,7 +67,7 @@ svn_cl__merge(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* For now, we require at least one source.  That may change in
      future versions of Subversion, for example if we have support for

Modified: subversion/trunk/subversion/svn/mergeinfo-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/mergeinfo-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/mergeinfo-cmd.c (original)
+++ subversion/trunk/subversion/svn/mergeinfo-cmd.c Sat Jun  4 06:37:25 2011
@@ -72,7 +72,7 @@ svn_cl__mergeinfo(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* We expect a single source URL followed by a single target --
      nothing more, nothing less. */

Modified: subversion/trunk/subversion/svn/mkdir-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/mkdir-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/mkdir-cmd.c (original)
+++ subversion/trunk/subversion/svn/mkdir-cmd.c Sat Jun  4 06:37:25 2011
@@ -51,7 +51,7 @@ svn_cl__mkdir(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   if (! targets->nelts)
     return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);

Modified: subversion/trunk/subversion/svn/move-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/move-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/move-cmd.c (original)
+++ subversion/trunk/subversion/svn/move-cmd.c Sat Jun  4 06:37:25 2011
@@ -52,7 +52,7 @@ svn_cl__move(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, TRUE, pool));
 
   if (targets->nelts < 2)
     return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);

Modified: subversion/trunk/subversion/svn/patch-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/patch-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/patch-cmd.c (original)
+++ subversion/trunk/subversion/svn/patch-cmd.c Sat Jun  4 06:37:25 2011
@@ -59,7 +59,7 @@ svn_cl__patch(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
   SVN_ERR(svn_cl__eat_peg_revisions(&targets, targets, pool));
 
   if (targets->nelts < 1)

Modified: subversion/trunk/subversion/svn/propdel-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/propdel-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/propdel-cmd.c (original)
+++ subversion/trunk/subversion/svn/propdel-cmd.c Sat Jun  4 06:37:25 2011
@@ -62,7 +62,7 @@ svn_cl__propdel(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
 
   /* Add "." if user passed 0 file arguments */

Modified: subversion/trunk/subversion/svn/propedit-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/propedit-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/propedit-cmd.c (original)
+++ subversion/trunk/subversion/svn/propedit-cmd.c Sat Jun  4 06:37:25 2011
@@ -95,7 +95,7 @@ svn_cl__propedit(apr_getopt_t *os,
   /* Suck up all the remaining arguments into a targets array */
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* We do our own notifications */
   ctx->notify_func2 = NULL;

Modified: subversion/trunk/subversion/svn/propget-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/propget-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/propget-cmd.c (original)
+++ subversion/trunk/subversion/svn/propget-cmd.c Sat Jun  4 06:37:25 2011
@@ -217,7 +217,7 @@ svn_cl__propget(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, pool));
+                                                      ctx, FALSE, pool));
 
   /* Add "." if user passed 0 file arguments */
   svn_opt_push_implicit_dot_target(targets, pool);

Modified: subversion/trunk/subversion/svn/proplist-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/proplist-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/proplist-cmd.c (original)
+++ subversion/trunk/subversion/svn/proplist-cmd.c Sat Jun  4 06:37:25 2011
@@ -115,7 +115,8 @@ svn_cl__proplist(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, scratch_pool));
+                                                      ctx, FALSE,
+                                                      scratch_pool));
 
   /* Add "." if user passed 0 file arguments */
   svn_opt_push_implicit_dot_target(targets, scratch_pool);

Modified: subversion/trunk/subversion/svn/propset-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/propset-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/propset-cmd.c (original)
+++ subversion/trunk/subversion/svn/propset-cmd.c Sat Jun  4 06:37:25 2011
@@ -98,7 +98,8 @@ svn_cl__propset(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, scratch_pool));
+                                                      ctx, FALSE,
+                                                      scratch_pool));
 
   /* Implicit "." is okay for revision properties; it just helps
      us find the right repository. */

Modified: subversion/trunk/subversion/svn/relocate-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/relocate-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/relocate-cmd.c (original)
+++ subversion/trunk/subversion/svn/relocate-cmd.c Sat Jun  4 06:37:25 2011
@@ -59,7 +59,8 @@ svn_cl__relocate(apr_getopt_t *os,
   */
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, scratch_pool));
+                                                      ctx, FALSE,
+                                                      scratch_pool));
   if (targets->nelts < 1)
     return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);
 

Modified: subversion/trunk/subversion/svn/resolve-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/resolve-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/resolve-cmd.c (original)
+++ subversion/trunk/subversion/svn/resolve-cmd.c Sat Jun  4 06:37:25 2011
@@ -85,7 +85,8 @@ svn_cl__resolve(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, scratch_pool));
+                                                      ctx, FALSE,
+                                                      scratch_pool));
   if (! targets->nelts)
     return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);
 

Modified: subversion/trunk/subversion/svn/resolved-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/resolved-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/resolved-cmd.c (original)
+++ subversion/trunk/subversion/svn/resolved-cmd.c Sat Jun  4 06:37:25 2011
@@ -56,7 +56,8 @@ svn_cl__resolved(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, scratch_pool));
+                                                      ctx, FALSE,
+                                                      scratch_pool));
   if (! targets->nelts)
     return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);
 

Modified: subversion/trunk/subversion/svn/revert-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/revert-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/revert-cmd.c (original)
+++ subversion/trunk/subversion/svn/revert-cmd.c Sat Jun  4 06:37:25 2011
@@ -52,7 +52,8 @@ svn_cl__revert(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, scratch_pool));
+                                                      ctx, FALSE,
+                                                      scratch_pool));
 
   /* Revert has no implicit dot-target `.', so don't you put that code here! */
   if (! targets->nelts)

Modified: subversion/trunk/subversion/svn/status-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/status-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/status-cmd.c (original)
+++ subversion/trunk/subversion/svn/status-cmd.c Sat Jun  4 06:37:25 2011
@@ -269,7 +269,8 @@ svn_cl__status(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, scratch_pool));
+                                                      ctx, FALSE,
+                                                      scratch_pool));
 
   /* Add "." if user passed 0 arguments */
   svn_opt_push_implicit_dot_target(targets, scratch_pool);

Modified: subversion/trunk/subversion/svn/switch-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/switch-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/switch-cmd.c (original)
+++ subversion/trunk/subversion/svn/switch-cmd.c Sat Jun  4 06:37:25 2011
@@ -109,7 +109,8 @@ svn_cl__switch(apr_getopt_t *os,
      switch to ("switch_url"). */
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, scratch_pool));
+                                                      ctx, FALSE,
+                                                      scratch_pool));
 
   /* handle only-rewrite case specially */
   if (opt_state->relocate)

Modified: subversion/trunk/subversion/svn/unlock-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/unlock-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/unlock-cmd.c (original)
+++ subversion/trunk/subversion/svn/unlock-cmd.c Sat Jun  4 06:37:25 2011
@@ -52,7 +52,8 @@ svn_cl__unlock(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, scratch_pool));
+                                                      ctx, FALSE,
+                                                      scratch_pool));
 
   /* We don't support unlock on directories, so "." is not relevant. */
   if (! targets->nelts)

Modified: subversion/trunk/subversion/svn/update-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/update-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/update-cmd.c (original)
+++ subversion/trunk/subversion/svn/update-cmd.c Sat Jun  4 06:37:25 2011
@@ -114,7 +114,8 @@ svn_cl__update(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, scratch_pool));
+                                                      ctx, FALSE,
+                                                      scratch_pool));
 
   /* Add "." if user passed 0 arguments */
   svn_opt_push_implicit_dot_target(targets, scratch_pool);

Modified: subversion/trunk/subversion/svn/upgrade-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/upgrade-cmd.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/upgrade-cmd.c (original)
+++ subversion/trunk/subversion/svn/upgrade-cmd.c Sat Jun  4 06:37:25 2011
@@ -53,7 +53,8 @@ svn_cl__upgrade(apr_getopt_t *os,
 
   SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
                                                       opt_state->targets,
-                                                      ctx, scratch_pool));
+                                                      ctx, FALSE,
+                                                      scratch_pool));
 
   /* Add "." if user passed 0 arguments */
   svn_opt_push_implicit_dot_target(targets, scratch_pool);

Modified: subversion/trunk/subversion/svn/util.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/util.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/util.c (original)
+++ subversion/trunk/subversion/svn/util.c Sat Jun  4 06:37:25 2011
@@ -1112,11 +1112,15 @@ svn_cl__args_to_target_array_print_reser
                                             apr_getopt_t *os,
                                             const apr_array_header_t 
*known_targets,
                                             svn_client_ctx_t *ctx,
+                                            svn_boolean_t 
keep_last_origpath_on_truepath_collision,
                                             apr_pool_t *pool)
 {
-  svn_error_t *err = svn_client_args_to_target_array(targets, os,
-                                                     known_targets,
-                                                     ctx, pool);
+  svn_error_t *err = svn_client_args_to_target_array2(targets,
+                                                      os,
+                                                      known_targets,
+                                                      ctx,
+                                                      
keep_last_origpath_on_truepath_collision,
+                                                      pool);
   if (err)
     {
       if (err->apr_err ==  SVN_ERR_RESERVED_FILENAME_SPECIFIED)

Modified: subversion/trunk/subversion/tests/cmdline/copy_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/copy_tests.py?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/copy_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/copy_tests.py Sat Jun  4 06:37:25 
2011
@@ -5173,9 +5173,8 @@ def copy_base_of_deleted(sbox):
     })
 
 
-# Regression test for issue #3702: "svn ren TODO todo" not work on windows
-# (i.e. case-only rename on Windows)
-@XFail(svntest.main.is_fs_case_insensitive)
+# Regression test for issue #3702: Unable to perform case-only rename
+# on windows.
 @Issue(3702)
 def case_only_rename(sbox):
   """case-only rename"""

Modified: subversion/trunk/subversion/tests/libsvn_client/client-test.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_client/client-test.c?rev=1131326&r1=1131325&r2=1131326&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_client/client-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_client/client-test.c Sat Jun  4 
06:37:25 2011
@@ -157,7 +157,8 @@ test_args_to_target_array(apr_pool_t *po
         return svn_error_wrap_apr(apr_err,
                                   "Error initializing command line arguments");
 
-      err = svn_client_args_to_target_array(&targets, os, NULL, ctx, iterpool);
+      err = svn_client_args_to_target_array2(&targets, os, NULL, ctx, FALSE,
+                                             iterpool);
 
       if (expected_output)
         {


Reply via email to