You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2010/12/10 20:33:59 UTC

svn commit: r1044486 - in /subversion/trunk/subversion: include/private/svn_client_private.h libsvn_client/add.c libsvn_client/client.h libsvn_client/delete.c libsvn_client/locking_commands.c libsvn_client/util.c svn/util.c

Author: cmpilato
Date: Fri Dec 10 19:33:58 2010
New Revision: 1044486

URL: http://svn.apache.org/viewvc?rev=1044486&view=rev
Log:
Make svn_client__assert_homogeneous_target_type() semi-private, and
use it inside the command-line client (rather than duplicating the code).

* subversion/include/private/svn_client_private.h
  (svn_client__assert_homogeneous_target_type): Move here from client.h

* subversion/libsvn_client/client.h
  (svn_client__assert_homogeneous_target_type): Move to svn_client_private.h.

* subversion/svn/util.c
  (svn_cl__assert_homogeneous_target_type): Now, this is just a
    wrapper around svn_client__assert_homogeneous_target_type() which
    fixes up the returned error type.

* subversion/libsvn_client/add.c,
* subversion/libsvn_client/delete.c,
* subversion/libsvn_client/locking_commands.c,
* subversion/libsvn_client/util.c
  Now #include svn_client_private.h.

Modified:
    subversion/trunk/subversion/include/private/svn_client_private.h
    subversion/trunk/subversion/libsvn_client/add.c
    subversion/trunk/subversion/libsvn_client/client.h
    subversion/trunk/subversion/libsvn_client/delete.c
    subversion/trunk/subversion/libsvn_client/locking_commands.c
    subversion/trunk/subversion/libsvn_client/util.c
    subversion/trunk/subversion/svn/util.c

Modified: subversion/trunk/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_client_private.h?rev=1044486&r1=1044485&r2=1044486&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_client_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_client_private.h Fri Dec 10 19:33:58 2010
@@ -50,6 +50,14 @@ svn_client__obliterate_path_rev(const ch
                                 apr_pool_t *pool);
 
 
+/** Return @c SVN_ERR_ILLEGAL_TARGET if TARGETS contains a mixture of
+ * URLs and paths; otherwise return SVN_NO_ERROR.
+ *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_client__assert_homogeneous_target_type(const apr_array_header_t *targets);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/trunk/subversion/libsvn_client/add.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/add.c?rev=1044486&r1=1044485&r2=1044486&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/add.c (original)
+++ subversion/trunk/subversion/libsvn_client/add.c Fri Dec 10 19:33:58 2010
@@ -45,6 +45,7 @@
 #include "client.h"
 #include "svn_ctype.h"
 
+#include "private/svn_client_private.h"
 #include "private/svn_wc_private.h"
 
 #include "svn_private_config.h"

Modified: subversion/trunk/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/client.h?rev=1044486&r1=1044485&r2=1044486&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/client.h (original)
+++ subversion/trunk/subversion/libsvn_client/client.h Fri Dec 10 19:33:58 2010
@@ -1107,10 +1107,6 @@ const svn_opt_revision_t *
 svn_cl__rev_default_to_peg(const svn_opt_revision_t *revision,
                            const svn_opt_revision_t *peg_revision);
 
-/* Return an error if TARGETS contains a mixture of URLs and paths; otherwise
- * return SVN_NO_ERROR. */
-svn_error_t *
-svn_client__assert_homogeneous_target_type(const apr_array_header_t *targets);
 
 #ifdef __cplusplus
 }

Modified: subversion/trunk/subversion/libsvn_client/delete.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/delete.c?rev=1044486&r1=1044485&r2=1044486&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/delete.c (original)
+++ subversion/trunk/subversion/libsvn_client/delete.c Fri Dec 10 19:33:58 2010
@@ -37,6 +37,7 @@
 #include "svn_path.h"
 #include "client.h"
 
+#include "private/svn_client_private.h"
 #include "private/svn_wc_private.h"
 
 #include "svn_private_config.h"

Modified: subversion/trunk/subversion/libsvn_client/locking_commands.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/locking_commands.c?rev=1044486&r1=1044485&r2=1044486&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/locking_commands.c (original)
+++ subversion/trunk/subversion/libsvn_client/locking_commands.c Fri Dec 10 19:33:58 2010
@@ -35,6 +35,7 @@
 #include "svn_pools.h"
 
 #include "svn_private_config.h"
+#include "private/svn_client_private.h"
 #include "private/svn_wc_private.h"
 
 

Modified: subversion/trunk/subversion/libsvn_client/util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/util.c?rev=1044486&r1=1044485&r2=1044486&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/util.c (original)
+++ subversion/trunk/subversion/libsvn_client/util.c Fri Dec 10 19:33:58 2010
@@ -34,6 +34,7 @@
 #include "svn_wc.h"
 #include "svn_client.h"
 
+#include "private/svn_client_private.h"
 #include "private/svn_wc_private.h"
 
 #include "client.h"

Modified: subversion/trunk/subversion/svn/util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/util.c?rev=1044486&r1=1044485&r2=1044486&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/util.c (original)
+++ subversion/trunk/subversion/svn/util.c Fri Dec 10 19:33:58 2010
@@ -61,6 +61,7 @@
 
 #include "private/svn_token.h"
 #include "private/svn_opt_private.h"
+#include "private/svn_client_private.h"
 
 
 
@@ -1349,22 +1350,12 @@ svn_cl__opt_parse_path(svn_opt_revision_
 svn_error_t *
 svn_cl__assert_homogeneous_target_type(const apr_array_header_t *targets)
 {
-  svn_boolean_t wc_present = FALSE, url_present = FALSE;
-  int i;
-
-  for (i = 0; i < targets->nelts; ++i)
-    {
-      const char *target = APR_ARRAY_IDX(targets, i, const char *);
-      if (! svn_path_is_url(target))
-        wc_present = TRUE;
-      else
-        url_present = TRUE;
-    }
+  svn_error_t *err;
 
-  if (url_present && wc_present)
-    return svn_error_createf(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+  err = svn_client__assert_homogeneous_target_type(targets);
+  if (err && err->apr_err == SVN_ERR_ILLEGAL_TARGET)
+    return svn_error_createf(SVN_ERR_CL_ARG_PARSING_ERROR, err,
                              _("Cannot mix repository and working copy "
                                "targets"));
-
-  return SVN_NO_ERROR;
+  return err;
 }