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;