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