You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2015/08/28 18:34:32 UTC
svn commit: r1698367 - in /subversion/trunk/subversion:
include/private/svn_ra_svn_private.h libsvn_ra_svn/client.c
libsvn_ra_svn/marshal.c
Author: stefan2
Date: Fri Aug 28 16:34:31 2015
New Revision: 1698367
URL: http://svn.apache.org/r1698367
Log:
Introduce svn_ra_svn__set_capabilities to further decouple our ra_svn
implementation from its public API.
The purpose is that all our internal usage of svn_ra_svn avoids public
API functions that use svn_ra_svn_item_t so we can switch to a different
item type internally.
* subversion/include/private/svn_ra_svn_private.h
(svn_ra_svn__set_capabilities): Declare new private API, currently
an exact copy of the public one.
* subversion/libsvn_ra_svn/client.c
(open_session): Call the new private API instead the public one.
* subversion/libsvn_ra_svn/marshal.c
(svn_ra_svn_set_capabilities): New a simple wrapper around ...
(svn_ra_svn__set_capabilities): ... this new function - which uses
all the code of the former.
Modified:
subversion/trunk/subversion/include/private/svn_ra_svn_private.h
subversion/trunk/subversion/libsvn_ra_svn/client.c
subversion/trunk/subversion/libsvn_ra_svn/marshal.c
Modified: subversion/trunk/subversion/include/private/svn_ra_svn_private.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_ra_svn_private.h?rev=1698367&r1=1698366&r2=1698367&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_ra_svn_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_ra_svn_private.h Fri Aug 28 16:34:31 2015
@@ -34,6 +34,17 @@
extern "C" {
#endif /* __cplusplus */
+/** Add the capabilities in @a list to @a conn's capabilities.
+ * @a list contains svn_ra_svn_item_t entries (which should be of type
+ * SVN_RA_SVN_WORD; a malformed data error will result if any are not).
+ *
+ * This is idempotent: if a given capability was already set for
+ * @a conn, it remains set.
+ */
+svn_error_t *
+svn_ra_svn__set_capabilities(svn_ra_svn_conn_t *conn,
+ const apr_array_header_t *list);
+
/**
* Set the shim callbacks to be used by @a conn to @a shim_callbacks.
Modified: subversion/trunk/subversion/libsvn_ra_svn/client.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_svn/client.c?rev=1698367&r1=1698366&r2=1698367&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_svn/client.c (original)
+++ subversion/trunk/subversion/libsvn_ra_svn/client.c Fri Aug 28 16:34:31 2015
@@ -726,7 +726,7 @@ static svn_error_t *open_session(svn_ra_
return svn_error_createf(SVN_ERR_RA_SVN_BAD_VERSION, NULL,
_("Server only supports versions up to %d"),
(int) maxver);
- SVN_ERR(svn_ra_svn_set_capabilities(conn, server_caplist));
+ SVN_ERR(svn_ra_svn__set_capabilities(conn, server_caplist));
/* All released versions of Subversion support edit-pipeline,
* so we do not support servers that do not. */
@@ -759,7 +759,7 @@ static svn_error_t *open_session(svn_ra_
SVN_ERR(svn_ra_svn__read_cmd_response(conn, pool, "c?c?l", &conn->uuid,
&conn->repos_root, &repos_caplist));
if (repos_caplist)
- SVN_ERR(svn_ra_svn_set_capabilities(conn, repos_caplist));
+ SVN_ERR(svn_ra_svn__set_capabilities(conn, repos_caplist));
if (conn->repos_root)
{
Modified: subversion/trunk/subversion/libsvn_ra_svn/marshal.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_svn/marshal.c?rev=1698367&r1=1698366&r2=1698367&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_svn/marshal.c (original)
+++ subversion/trunk/subversion/libsvn_ra_svn/marshal.c Fri Aug 28 16:34:31 2015
@@ -133,8 +133,16 @@ svn_ra_svn_conn_t *svn_ra_svn_create_con
return conn;
}
-svn_error_t *svn_ra_svn_set_capabilities(svn_ra_svn_conn_t *conn,
- const apr_array_header_t *list)
+svn_error_t *
+svn_ra_svn_set_capabilities(svn_ra_svn_conn_t *conn,
+ const apr_array_header_t *list)
+{
+ return svn_error_trace(svn_ra_svn__set_capabilities(conn, list));
+}
+
+svn_error_t *
+svn_ra_svn__set_capabilities(svn_ra_svn_conn_t *conn,
+ const apr_array_header_t *list)
{
int i;
svn_ra_svn_item_t *item;