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 2013/05/10 16:58:56 UTC
svn commit: r1481041 [6/38] - in /subversion/branches/master-passphrase: ./
build/ build/ac-macros/ build/generator/ build/generator/templates/
contrib/client-side/svncopy/ contrib/hook-scripts/
contrib/server-side/fsfsfixer/ contrib/server-side/fsfsfi...
Modified: subversion/branches/master-passphrase/subversion/include/svn_delta.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_delta.h?rev=1481041&r1=1481040&r2=1481041&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_delta.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_delta.h Fri May 10 14:58:47 2013
@@ -1119,70 +1119,6 @@ typedef struct svn_delta_editor_t
svn_delta_editor_t *
svn_delta_default_editor(apr_pool_t *pool);
-/** Callback to retrieve a node's entire set of properties. This is
- * needed by the various editor shims in order to effect backward compat.
- *
- * @since New in 1.8.
- */
-typedef svn_error_t *(*svn_delta_fetch_props_func_t)(
- apr_hash_t **props,
- void *baton,
- const char *path,
- svn_revnum_t base_revision,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool
- );
-
-/** Callback to retrieve a node's kind. This is needed by the various editor
- * shims in order to effect backward compat.
- *
- * @since New in 1.8.
- */
-typedef svn_error_t *(*svn_delta_fetch_kind_func_t)(
- svn_kind_t *kind,
- void *baton,
- const char *path,
- svn_revnum_t base_revision,
- apr_pool_t *scratch_pool
- );
-
-/** Callback to fetch the FILENAME of a file to use as the delta base for
- * PATH. The file should last at least as long as RESULT_POOL. If the base
- * stream is empty, return NULL through FILENAME.
- *
- * @since New in 1.8.
- */
-typedef svn_error_t *(*svn_delta_fetch_base_func_t)(
- const char **filename,
- void *baton,
- const char *path,
- svn_revnum_t base_revision,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool
- );
-
-/** Collection of callbacks used for the shim code. To enable this struct
- * to grow, always use svn_delta_shim_callbacks_default()
- * to allocate new instances of it.
- *
- * @since New in 1.8.
- */
-typedef struct svn_delta_shim_callbacks_t
-{
- svn_delta_fetch_props_func_t fetch_props_func;
- svn_delta_fetch_kind_func_t fetch_kind_func;
- svn_delta_fetch_base_func_t fetch_base_func;
- void *fetch_baton;
-} svn_delta_shim_callbacks_t;
-
-/** Return a collection of default shim functions in @a result_pool.
- *
- * @since New in 1.8.
- */
-svn_delta_shim_callbacks_t *
-svn_delta_shim_callbacks_default(apr_pool_t *result_pool);
-
-
/** A text-delta window handler which does nothing.
*
* Editors can return this handler from @c apply_textdelta if they don't
Modified: subversion/branches/master-passphrase/subversion/include/svn_error.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_error.h?rev=1481041&r1=1481040&r2=1481041&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_error.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_error.h Fri May 10 14:58:47 2013
@@ -66,6 +66,36 @@ svn_strerror(apr_status_t statcode,
apr_size_t bufsize);
+/**
+ * Return the symbolic name of an error code. If the error code
+ * is in svn_error_codes.h, return the name of the macro as a string.
+ * If the error number is not recognised, return @c NULL.
+ *
+ * An error number may not be recognised because it was defined in a future
+ * version of Subversion (e.g., a 1.9.x server may transmit a defined-in-1.9.0
+ * error number to a 1.8.x client).
+ *
+ * An error number may be recognised @em incorrectly if the @c apr_status_t
+ * value originates in another library (such as libserf) which also uses APR.
+ * (This is a theoretical concern only: the @c apr_err member of #svn_error_t
+ * should never contain a "foreign" @c apr_status_t value, and
+ * in any case Subversion and Serf use non-overlapping subsets of the
+ * @c APR_OS_START_USERERR range.)
+ *
+ * Support for error codes returned by APR itself (i.e., not in the
+ * @c APR_OS_START_USERERR range, as defined in apr_errno.h) may be implemented
+ * in the future.
+ *
+ * @note In rare cases, a single numeric code has more than one symbolic name.
+ * (For example, #SVN_ERR_WC_NOT_DIRECTORY and #SVN_ERR_WC_NOT_WORKING_COPY).
+ * In those cases, it is not guaranteed which symbolic name is returned.
+ *
+ * @since New in 1.8.
+ */
+const char *
+svn_error_symbolic_name(apr_status_t statcode);
+
+
/** If @a err has a custom error message, return that, otherwise
* store the generic error string associated with @a err->apr_err into
* @a buf (terminating with NULL) and return @a buf.
@@ -210,7 +240,7 @@ void
svn_error_clear(svn_error_t *error);
-#if defined(SVN_DEBUG)
+#if defined(SVN_ERR__TRACING)
/** Set the error location for debug mode. */
void
svn_error__locate(const char *file,
@@ -461,10 +491,22 @@ svn_error_t *svn_error_purge_tracing(svn
abort(); \
} while (1)
-/** Like SVN_ERR_ASSERT(), but append ERR to the returned error chain.
+/** Check that a condition is true: if not, report an error (appending
+ * ERR if non-NULL) and possibly terminate the program.
+ *
+ * If the boolean expression @a expr is true, do nothing. Otherwise,
+ * act as determined by the current "malfunction handler" which may have
+ * been specified by a call to svn_error_set_malfunction_handler() or else
+ * is the default handler as specified in that function's documentation. If
+ * the malfunction handler returns, then cause the function using this macro
+ * to return the error object that it generated.
+ *
+ * @note The intended use of this macro is to check a condition that cannot
+ * possibly be false unless there is a bug in the program.
*
- * If EXPR is false, return a malfunction error whose chain includes ERR.
- * If EXPR is true, do nothing. (In particular, this does not clear ERR.)
+ * @note The condition to be checked should not be computationally expensive
+ * if it is reached often, as, unlike traditional "assert" statements, the
+ * evaluation of this expression is not compiled out in release-mode builds.
*
* Types: (svn_boolean_t expr, svn_error_t *err)
*
@@ -485,38 +527,13 @@ svn_error_t *svn_error_purge_tracing(svn
} while (0)
#endif
-
-/** Check that a condition is true: if not, report an error and possibly
- * terminate the program.
- *
- * If the Boolean expression @a expr is true, do nothing. Otherwise,
- * act as determined by the current "malfunction handler" which may have
- * been specified by a call to svn_error_set_malfunction_handler() or else
- * is the default handler as specified in that function's documentation. If
- * the malfunction handler returns, then cause the function using this macro
- * to return the error object that it generated.
+/** Like SVN_ERR_ASSERT_E(), but with @a err always NULL.
*
- * @note The intended use of this macro is to check a condition that cannot
- * possibly be false unless there is a bug in the program.
- *
- * @note The condition to be checked should not be computationally expensive
- * if it is reached often, as, unlike traditional "assert" statements, the
- * evaluation of this expression is not compiled out in release-mode builds.
+ * @see SVN_ERR_ASSERT_E()
*
* @since New in 1.6.
- *
- * @see SVN_ERR_ASSERT_E()
*/
-#ifdef __clang_analyzer__
-#include <assert.h>
-#define SVN_ERR_ASSERT(expr) assert((expr))
-#else
-#define SVN_ERR_ASSERT(expr) \
- do { \
- if (!(expr)) \
- SVN_ERR(svn_error__malfunction(TRUE, __FILE__, __LINE__, #expr)); \
- } while (0)
-#endif
+#define SVN_ERR_ASSERT(expr) SVN_ERR_ASSERT_E(expr, NULL)
/** Similar to SVN_ERR_ASSERT(), but without the option of returning
* an error to the calling function.
Modified: subversion/branches/master-passphrase/subversion/include/svn_error_codes.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_error_codes.h?rev=1481041&r1=1481040&r2=1481041&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_error_codes.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_error_codes.h Fri May 10 14:58:47 2013
@@ -46,6 +46,10 @@
not defined the enumerated constants yet. */
#if defined(SVN_ERROR_BUILD_ARRAY) || !defined(SVN_ERROR_ENUM_DEFINED)
+/* Note: despite lacking double underscores in its name, the macro
+ SVN_ERROR_BUILD_ARRAY is an implementation detail of Subversion and not
+ a public API. */
+
#include <apr_errno.h> /* APR's error system */
@@ -59,9 +63,9 @@ extern "C" {
#define SVN_ERROR_START \
static const err_defn error_table[] = { \
- { SVN_WARNING, "Warning" },
-#define SVN_ERRDEF(num, offset, str) { num, str },
-#define SVN_ERROR_END { 0, NULL } };
+ { SVN_WARNING, "SVN_WARNING", "Warning" },
+#define SVN_ERRDEF(num, offset, str) { num, #num, str },
+#define SVN_ERROR_END { 0, NULL, NULL } };
#elif !defined(SVN_ERROR_ENUM_DEFINED)
@@ -788,12 +792,12 @@ SVN_ERROR_START
"The filesystem editor completion process was not followed")
/** @since New in 1.8. */
- SVN_ERRDEF(SVN_ERR_FS_PACKED_REPPROP_READ_FAILURE,
+ SVN_ERRDEF(SVN_ERR_FS_PACKED_REVPROP_READ_FAILURE,
SVN_ERR_FS_CATEGORY_START + 51,
"A packed revprop could not be read")
/** @since New in 1.8. */
- SVN_ERRDEF(SVN_ERR_FS_REPPROP_CACHE_INIT_FAILURE,
+ SVN_ERRDEF(SVN_ERR_FS_REVPROP_CACHE_INIT_FAILURE,
SVN_ERR_FS_CATEGORY_START + 52,
"Could not initialize the revprop caching infrastructure.")
@@ -906,6 +910,11 @@ SVN_ERROR_START
SVN_ERR_RA_CATEGORY_START + 11,
"Session URL does not match expected session URL")
+ /** @since New in 1.8. */
+ SVN_ERRDEF(SVN_ERR_RA_CANNOT_CREATE_TUNNEL,
+ SVN_ERR_RA_CATEGORY_START + 12,
+ "Can't create tunnel")
+
/* ra_dav errors */
SVN_ERRDEF(SVN_ERR_RA_DAV_SOCK_INIT,
@@ -984,114 +993,6 @@ SVN_ERROR_START
SVN_ERRDEF(SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILED,
SVN_ERR_RA_LOCAL_CATEGORY_START + 1,
"Couldn't open a repository")
- /* ra_svn errors */
-
- SVN_ERRDEF(SVN_ERR_RA_SVN_CMD_ERR,
- SVN_ERR_RA_SVN_CATEGORY_START + 0,
- "Special code for wrapping server errors to report to client")
-
- SVN_ERRDEF(SVN_ERR_RA_SVN_UNKNOWN_CMD,
- SVN_ERR_RA_SVN_CATEGORY_START + 1,
- "Unknown svn protocol command")
-
- SVN_ERRDEF(SVN_ERR_RA_SVN_CONNECTION_CLOSED,
- SVN_ERR_RA_SVN_CATEGORY_START + 2,
- "Network connection closed unexpectedly")
-
- SVN_ERRDEF(SVN_ERR_RA_SVN_IO_ERROR,
- SVN_ERR_RA_SVN_CATEGORY_START + 3,
- "Network read/write error")
-
- SVN_ERRDEF(SVN_ERR_RA_SVN_MALFORMED_DATA,
- SVN_ERR_RA_SVN_CATEGORY_START + 4,
- "Malformed network data")
-
- SVN_ERRDEF(SVN_ERR_RA_SVN_REPOS_NOT_FOUND,
- SVN_ERR_RA_SVN_CATEGORY_START + 5,
- "Couldn't find a repository")
-
- SVN_ERRDEF(SVN_ERR_RA_SVN_BAD_VERSION,
- SVN_ERR_RA_SVN_CATEGORY_START + 6,
- "Client/server version mismatch")
-
- /** @since New in 1.5. */
- SVN_ERRDEF(SVN_ERR_RA_SVN_NO_MECHANISMS,
- SVN_ERR_RA_SVN_CATEGORY_START + 7,
- "Cannot negotiate authentication mechanism")
-
- /** @since New in 1.7 */
- SVN_ERRDEF(SVN_ERR_RA_SVN_EDIT_ABORTED,
- SVN_ERR_RA_SVN_CATEGORY_START + 8,
- "Editor drive was aborted")
-
- /* libsvn_ra_serf errors */
- /** @since New in 1.5. */
- SVN_ERRDEF(SVN_ERR_RA_SERF_SSPI_INITIALISATION_FAILED,
- SVN_ERR_RA_SERF_CATEGORY_START + 0,
- "Initialization of SSPI library failed")
- /** @since New in 1.5. */
- SVN_ERRDEF(SVN_ERR_RA_SERF_SSL_CERT_UNTRUSTED,
- SVN_ERR_RA_SERF_CATEGORY_START + 1,
- "Server SSL certificate untrusted")
- /** @since New in 1.7. */
- SVN_ERRDEF(SVN_ERR_RA_SERF_GSSAPI_INITIALISATION_FAILED,
- SVN_ERR_RA_SERF_CATEGORY_START + 2,
- "Initialization of the GSSAPI context failed")
-
- /** @since New in 1.7. */
- SVN_ERRDEF(SVN_ERR_RA_SERF_WRAPPED_ERROR,
- SVN_ERR_RA_SERF_CATEGORY_START + 3,
- "While handling serf response:")
-
- /* libsvn_auth errors */
-
- /* this error can be used when an auth provider doesn't have
- the creds, but no other "real" error occurred. */
- SVN_ERRDEF(SVN_ERR_AUTHN_CREDS_UNAVAILABLE,
- SVN_ERR_AUTHN_CATEGORY_START + 0,
- "Credential data unavailable")
-
- SVN_ERRDEF(SVN_ERR_AUTHN_NO_PROVIDER,
- SVN_ERR_AUTHN_CATEGORY_START + 1,
- "No authentication provider available")
-
- SVN_ERRDEF(SVN_ERR_AUTHN_PROVIDERS_EXHAUSTED,
- SVN_ERR_AUTHN_CATEGORY_START + 2,
- "All authentication providers exhausted")
-
- SVN_ERRDEF(SVN_ERR_AUTHN_CREDS_NOT_SAVED,
- SVN_ERR_AUTHN_CATEGORY_START + 3,
- "Credentials not saved")
-
- /** @since New in 1.5. */
- SVN_ERRDEF(SVN_ERR_AUTHN_FAILED,
- SVN_ERR_AUTHN_CATEGORY_START + 4,
- "Authentication failed")
-
- /* authorization errors */
-
- SVN_ERRDEF(SVN_ERR_AUTHZ_ROOT_UNREADABLE,
- SVN_ERR_AUTHZ_CATEGORY_START + 0,
- "Read access denied for root of edit")
-
- /** @since New in 1.1. */
- SVN_ERRDEF(SVN_ERR_AUTHZ_UNREADABLE,
- SVN_ERR_AUTHZ_CATEGORY_START + 1,
- "Item is not readable")
-
- /** @since New in 1.1. */
- SVN_ERRDEF(SVN_ERR_AUTHZ_PARTIALLY_READABLE,
- SVN_ERR_AUTHZ_CATEGORY_START + 2,
- "Item is partially readable")
-
- SVN_ERRDEF(SVN_ERR_AUTHZ_INVALID_CONFIG,
- SVN_ERR_AUTHZ_CATEGORY_START + 3,
- "Invalid authz configuration")
-
- /** @since New in 1.3 */
- SVN_ERRDEF(SVN_ERR_AUTHZ_UNWRITABLE,
- SVN_ERR_AUTHZ_CATEGORY_START + 4,
- "Item is not writable")
/* svndiff errors */
@@ -1119,12 +1020,6 @@ SVN_ERROR_START
SVN_ERR_SVNDIFF_CATEGORY_START + 5,
"Svndiff compressed data is invalid")
- /* libsvn_diff errors */
-
- SVN_ERRDEF(SVN_ERR_DIFF_DATASOURCE_MODIFIED,
- SVN_ERR_DIFF_CATEGORY_START + 0,
- "Diff data source modified unexpectedly")
-
/* mod_dav_svn errors */
SVN_ERRDEF(SVN_ERR_APMOD_MISSING_PATH_TO_FS,
@@ -1385,7 +1280,7 @@ SVN_ERROR_START
/** @since New in 1.6. */
SVN_ERRDEF(SVN_ERR_NO_APR_MEMCACHE,
SVN_ERR_MISC_CATEGORY_START + 28,
- "apr memcache library not available")
+ "APR memcache library not available")
/** @since New in 1.6. */
SVN_ERRDEF(SVN_ERR_ATOMIC_INIT_FAILURE,
@@ -1428,18 +1323,28 @@ SVN_ERROR_START
/** @since New in 1.8. */
SVN_ERRDEF(SVN_ERR_TOO_MANY_MEMCACHED_SERVERS,
SVN_ERR_MISC_CATEGORY_START + 36,
- "too many memcached servers configured")
+ "Too many memcached servers configured")
/** @since New in 1.8. */
SVN_ERRDEF(SVN_ERR_MALFORMED_VERSION_STRING,
SVN_ERR_MISC_CATEGORY_START + 37,
- "failed to parse version number string")
+ "Failed to parse version number string")
/** @since New in 1.8. */
SVN_ERRDEF(SVN_ERR_CORRUPTED_ATOMIC_STORAGE,
SVN_ERR_MISC_CATEGORY_START + 38,
"Atomic data storage is corrupt")
+ /** @since New in 1.8. */
+ SVN_ERRDEF(SVN_ERR_UTF8PROC_ERROR,
+ SVN_ERR_MISC_CATEGORY_START + 39,
+ "utf8proc library error")
+
+ /** @since New in 1.8. */
+ SVN_ERRDEF(SVN_ERR_UTF8_GLOB,
+ SVN_ERR_MISC_CATEGORY_START + 40,
+ "Bad arguments to SQL operators GLOB or LIKE")
+
/* command-line client errors */
SVN_ERRDEF(SVN_ERR_CL_ARG_PARSING_ERROR,
@@ -1490,6 +1395,123 @@ SVN_ERROR_START
SVN_ERR_CL_CATEGORY_START + 11,
"Failed processing one or more externals definitions")
+ /* ra_svn errors */
+
+ SVN_ERRDEF(SVN_ERR_RA_SVN_CMD_ERR,
+ SVN_ERR_RA_SVN_CATEGORY_START + 0,
+ "Special code for wrapping server errors to report to client")
+
+ SVN_ERRDEF(SVN_ERR_RA_SVN_UNKNOWN_CMD,
+ SVN_ERR_RA_SVN_CATEGORY_START + 1,
+ "Unknown svn protocol command")
+
+ SVN_ERRDEF(SVN_ERR_RA_SVN_CONNECTION_CLOSED,
+ SVN_ERR_RA_SVN_CATEGORY_START + 2,
+ "Network connection closed unexpectedly")
+
+ SVN_ERRDEF(SVN_ERR_RA_SVN_IO_ERROR,
+ SVN_ERR_RA_SVN_CATEGORY_START + 3,
+ "Network read/write error")
+
+ SVN_ERRDEF(SVN_ERR_RA_SVN_MALFORMED_DATA,
+ SVN_ERR_RA_SVN_CATEGORY_START + 4,
+ "Malformed network data")
+
+ SVN_ERRDEF(SVN_ERR_RA_SVN_REPOS_NOT_FOUND,
+ SVN_ERR_RA_SVN_CATEGORY_START + 5,
+ "Couldn't find a repository")
+
+ SVN_ERRDEF(SVN_ERR_RA_SVN_BAD_VERSION,
+ SVN_ERR_RA_SVN_CATEGORY_START + 6,
+ "Client/server version mismatch")
+
+ /** @since New in 1.5. */
+ SVN_ERRDEF(SVN_ERR_RA_SVN_NO_MECHANISMS,
+ SVN_ERR_RA_SVN_CATEGORY_START + 7,
+ "Cannot negotiate authentication mechanism")
+
+ /** @since New in 1.7 */
+ SVN_ERRDEF(SVN_ERR_RA_SVN_EDIT_ABORTED,
+ SVN_ERR_RA_SVN_CATEGORY_START + 8,
+ "Editor drive was aborted")
+
+ /* libsvn_auth errors */
+
+ /* this error can be used when an auth provider doesn't have
+ the creds, but no other "real" error occurred. */
+ SVN_ERRDEF(SVN_ERR_AUTHN_CREDS_UNAVAILABLE,
+ SVN_ERR_AUTHN_CATEGORY_START + 0,
+ "Credential data unavailable")
+
+ SVN_ERRDEF(SVN_ERR_AUTHN_NO_PROVIDER,
+ SVN_ERR_AUTHN_CATEGORY_START + 1,
+ "No authentication provider available")
+
+ SVN_ERRDEF(SVN_ERR_AUTHN_PROVIDERS_EXHAUSTED,
+ SVN_ERR_AUTHN_CATEGORY_START + 2,
+ "All authentication providers exhausted")
+
+ SVN_ERRDEF(SVN_ERR_AUTHN_CREDS_NOT_SAVED,
+ SVN_ERR_AUTHN_CATEGORY_START + 3,
+ "Credentials not saved")
+
+ /** @since New in 1.5. */
+ SVN_ERRDEF(SVN_ERR_AUTHN_FAILED,
+ SVN_ERR_AUTHN_CATEGORY_START + 4,
+ "Authentication failed")
+
+ /* authorization errors */
+
+ SVN_ERRDEF(SVN_ERR_AUTHZ_ROOT_UNREADABLE,
+ SVN_ERR_AUTHZ_CATEGORY_START + 0,
+ "Read access denied for root of edit")
+
+ /** @since New in 1.1. */
+ SVN_ERRDEF(SVN_ERR_AUTHZ_UNREADABLE,
+ SVN_ERR_AUTHZ_CATEGORY_START + 1,
+ "Item is not readable")
+
+ /** @since New in 1.1. */
+ SVN_ERRDEF(SVN_ERR_AUTHZ_PARTIALLY_READABLE,
+ SVN_ERR_AUTHZ_CATEGORY_START + 2,
+ "Item is partially readable")
+
+ SVN_ERRDEF(SVN_ERR_AUTHZ_INVALID_CONFIG,
+ SVN_ERR_AUTHZ_CATEGORY_START + 3,
+ "Invalid authz configuration")
+
+ /** @since New in 1.3 */
+ SVN_ERRDEF(SVN_ERR_AUTHZ_UNWRITABLE,
+ SVN_ERR_AUTHZ_CATEGORY_START + 4,
+ "Item is not writable")
+
+
+ /* libsvn_diff errors */
+
+ SVN_ERRDEF(SVN_ERR_DIFF_DATASOURCE_MODIFIED,
+ SVN_ERR_DIFF_CATEGORY_START + 0,
+ "Diff data source modified unexpectedly")
+
+ /* libsvn_ra_serf errors */
+ /** @since New in 1.5. */
+ SVN_ERRDEF(SVN_ERR_RA_SERF_SSPI_INITIALISATION_FAILED,
+ SVN_ERR_RA_SERF_CATEGORY_START + 0,
+ "Initialization of SSPI library failed")
+ /** @since New in 1.5. */
+ SVN_ERRDEF(SVN_ERR_RA_SERF_SSL_CERT_UNTRUSTED,
+ SVN_ERR_RA_SERF_CATEGORY_START + 1,
+ "Server SSL certificate untrusted")
+ /** @since New in 1.7.
+ @deprecated GSSAPI now handled by serf rather than libsvn_ra_serf. */
+ SVN_ERRDEF(SVN_ERR_RA_SERF_GSSAPI_INITIALISATION_FAILED,
+ SVN_ERR_RA_SERF_CATEGORY_START + 2,
+ "Initialization of the GSSAPI context failed")
+
+ /** @since New in 1.7. */
+ SVN_ERRDEF(SVN_ERR_RA_SERF_WRAPPED_ERROR,
+ SVN_ERR_RA_SERF_CATEGORY_START + 3,
+ "While handling serf response:")
+
/* malfunctions such as assertion failures */
SVN_ERRDEF(SVN_ERR_ASSERTION_FAIL,
Modified: subversion/branches/master-passphrase/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_fs.h?rev=1481041&r1=1481040&r2=1481041&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_fs.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_fs.h Fri May 10 14:58:47 2013
@@ -95,6 +95,24 @@ typedef struct svn_fs_t svn_fs_t;
*/
#define SVN_FS_CONFIG_FSFS_CACHE_REVPROPS "fsfs-cache-revprops"
+/** Select the cache namespace. If you potentially share the cache with
+ * another FS object for the same repository, objects read through one FS
+ * will not need to be read again for the other. In most cases, that is
+ * a very desirable behavior and the default is, therefore, an empty
+ * namespace.
+ *
+ * If you want to be sure that your FS instance will actually read all
+ * requested data at least once, you need to specify a separate namespace
+ * for it. All repository verification code, for instance, should use
+ * some GUID here that is different each time you open an FS instance.
+ *
+ * @since New in 1.8.
+ */
+#define SVN_FS_CONFIG_FSFS_CACHE_NS "fsfs-cache-namespace"
+
+/* Note to maintainers: if you add further SVN_FS_CONFIG_FSFS_CACHE_* knobs,
+ update fs_fs.c:verify_as_revision_before_current_plus_plus(). */
+
/* See also svn_fs_type(). */
/** @since New in 1.1. */
#define SVN_FS_CONFIG_FS_TYPE "fs-type"
@@ -276,73 +294,6 @@ typedef void (*svn_fs_progress_notify_fu
apr_pool_t *pool);
/**
- * Perform backend-specific data consistency and correctness validations
- * to the Subversion filesystem (mainly the meta-data) located in the
- * directory @a path. Use @a scratch_pool for temporary allocations.
- *
- * @a start and @a end are used to limit the amount of checks being done
- * to data that is relevant to that range of revisions. However, this is
- * only a lower limit to the actual amount of checks being done. The
- * backend may not even be able to limit the errors begin reported.
- * @a start and @a end may be #SVN_INVALID_REVNUM, in which case
- * svn_repos_verify_fs2()'s semantics apply. When @c r0 is being
- * verified, global invariants may be verified as well.
- *
- * The optional @a notify_func callback is only a general feedback that
- * the operation is still in process but may be called in random revisions
- * order and more than once for the same revision, i.e. r2, r1, r2 would
- * be a valid sequence.
- *
- * The optional @a cancel_func callback will be invoked as usual to allow
- * the user to preempt this potentially lengthy operation.
- *
- * @note You probably don't want to use this directly. Take a look at
- * svn_repos_verify_fs2() instead, which does non-backend-specific
- * verifications as well.
- *
- * @note To ensure a full verification using all tests and covering all
- * revisions, you must call this function *and* #svn_fs_verify_rev.
- *
- * @note Implementors, please do tests that can be done efficiently for
- * a single revision to #svn_fs_verify_rev. This function is meant for
- * global checks or tests that require an expensive context setup.
- *
- * @since New in 1.8.
- */
-svn_error_t *
-svn_fs_verify(const char *path,
- svn_revnum_t start,
- svn_revnum_t end,
- svn_fs_progress_notify_func_t notify_func,
- void *notify_baton,
- svn_cancel_func_t cancel_func,
- void *cancel_baton,
- apr_pool_t *scratch_pool);
-
-/**
- * Perform backend-specific data consistency and correctness validations
- * to revision @a revision of the Subversion filesystem @a fs.
- * Use @a scratch_pool for temporary allocations.
- *
- * @note You probably don't want to use this directly. Take a look at
- * svn_repos_verify_fs2() instead, which does non-backend-specific
- * verifications as well.
- *
-* @note To ensure a full verification using all tests and covering all
- * revisions, you must call this function *and* #svn_fs_verify.
- *
- * @note Implementors, please do tests that cannot be done efficiently for
- * a single revision to #svn_fs_verify. This function is meant for local
- * checks that don't require an expensive context setup.
- *
- * @since New in 1.8.
- */
-svn_error_t *
-svn_fs_verify_rev(svn_fs_t *fs,
- svn_revnum_t revision,
- apr_pool_t *scratch_pool);
-
-/**
* Return, in @a *fs_type, a string identifying the back-end type of
* the Subversion filesystem located in @a path. Allocate @a *fs_type
* in @a pool.
@@ -374,6 +325,20 @@ svn_fs_path(svn_fs_t *fs,
apr_pool_t *pool);
/**
+ * Return a shallow copy of the configuration parameters used to open
+ * @a fs, allocated in @a pool. It may be @c NULL. The contents of the
+ * hash contents remains valid only for @a fs's lifetime.
+ *
+ * @note This is just what was passed to svn_fs_create() or svn_fs_open().
+ * You may not modify it.
+ *
+ * @since New in 1.8.
+ */
+apr_hash_t *
+svn_fs_config(svn_fs_t *fs,
+ apr_pool_t *pool);
+
+/**
* Delete the filesystem at @a path.
*
* @note: Deleting a filesystem that has an open svn_fs_t is not
@@ -393,9 +358,10 @@ svn_fs_delete_fs(const char *path,
* means deleting copied, unused logfiles for a Berkeley DB source
* filesystem.
*
- * If @a incremental is TRUE, make an effort to not re-copy information
- * already present in the destination. If incremental hotcopy is not
- * implemented, raise SVN_ERR_UNSUPPORTED_FEATURE.
+ * If @a incremental is TRUE, make an effort to avoid re-copying
+ * information already present in the destination where possible. If
+ * incremental hotcopy is not implemented, raise
+ * #SVN_ERR_UNSUPPORTED_FEATURE.
*
* Use @a scratch_pool for temporary allocations.
*
@@ -411,8 +377,8 @@ svn_fs_hotcopy2(const char *src_path,
apr_pool_t *scratch_pool);
/**
- * Like svn_fs_hotcopy2(), but without the @a incremental parameter
- * and without cancellation support.
+ * Like svn_fs_hotcopy2(), but with @a incremental always passed as @c
+ * TRUE and without cancellation support.
*
* @deprecated Provided for backward compatibility with the 1.7 API.
* @since New in 1.1.
@@ -467,21 +433,29 @@ svn_fs_recover(const char *path,
/**
+ * Callback for svn_fs_freeze().
+ *
+ * @since New in 1.8.
+ */
+typedef svn_error_t *(*svn_fs_freeze_func_t)(void *baton, apr_pool_t *pool);
+
+/**
* Take an exclusive lock on @a fs to prevent commits and then invoke
- * @a freeze_body passing @a baton.
+ * @a freeze_func passing @a freeze_baton.
*
* @note The BDB backend doesn't implement this feature so most
* callers should not call this function directly but should use the
- * higher level #svn_repos_freeze instead.
+ * higher level svn_repos_freeze() instead.
+ *
+ * @see svn_repos_freeze()
*
* @since New in 1.8.
*/
svn_error_t *
svn_fs_freeze(svn_fs_t *fs,
- svn_error_t *(*freeze_body)(void *baton, apr_pool_t *pool),
- void *baton,
+ svn_fs_freeze_func_t freeze_func,
+ void *freeze_baton,
apr_pool_t *pool);
-
/** Subversion filesystems based on Berkeley DB.
@@ -1648,10 +1622,10 @@ svn_fs_closest_copy(svn_fs_root_t **root
* @a inherit indicates whether to retrieve explicit,
* explicit-or-inherited, or only inherited mergeinfo.
*
- * If @a adjust_inherited_mergeinfo is TRUE, then any inherited
+ * If @a adjust_inherited_mergeinfo is @c TRUE, then any inherited
* mergeinfo returned in @a *catalog is normalized to represent the
- * inherited mergeinfo on the path doing the inheriting. If
- * @a adjust_inherited_mergeinfo is FALSE, then any inherited
+ * inherited mergeinfo on the path which inherits it. If
+ * @a adjust_inherited_mergeinfo is @c FALSE, then any inherited
* mergeinfo is the raw explicit mergeinfo from the nearest parent
* of the path with explicit mergeinfo, unadjusted for the path-wise
* difference between the path and its parent. This may include
@@ -1681,7 +1655,7 @@ svn_fs_get_mergeinfo2(svn_mergeinfo_cata
/**
* Same as svn_fs_get_mergeinfo2(), but with @a adjust_inherited_mergeinfo
- * set always set to TRUE and only one pool.
+ * set always set to @c TRUE and with only one pool.
*
* @deprecated Provided for backward compatibility with the 1.5 API.
*/
@@ -1928,11 +1902,11 @@ svn_fs_file_contents(svn_stream_t **cont
apr_pool_t *pool);
/**
- * Callback function type that gets presented with a immutable non-NULL
- * @a contents of @a len bytes. Further parameters may be passed through
- * in @a baton.
+ * Callback function type used with svn_fs_try_process_file_contents()
+ * that delivers the immutable, non-NULL @a contents of @a len bytes.
+ * @a baton is an implementation-specific closure.
*
- * Allocations must be made in @a pool.
+ * Use @a scratch_pool for allocations.
*
* @since New in 1.8.
*/
@@ -1940,22 +1914,21 @@ typedef svn_error_t *
(*svn_fs_process_contents_func_t)(const unsigned char *contents,
apr_size_t len,
void *baton,
- apr_pool_t *pool);
+ apr_pool_t *scratch_pool);
-/** Attempts to efficiently provide the contents of the file @a path in
- * @a root. If that succeeds, @a *success will be set to #TRUE and the
- * contents will be passed to the the @a processor along with the given
- * @a baton. Allocations take place in @a pool.
+/** Efficiently deliver the contents of the file @a path in @a root
+ * via @a processor (with @a baton), setting @a *success to @c TRUE
+ * upon doing so. Use @a pool for allocations.
*
* This function is intended to support zero copy data processing. It may
* not be implemented for all data backends or not applicable for certain
- * content. In that case, @a *success will always be #FALSE. Also, this
- * is a best-effort function which means there is no guarantee that e.g.
- * @a processor gets called at for any content.
+ * content. In that case, @a *success will always be @c FALSE. Also, this
+ * is a best-effort function which means that there is no guarantee that
+ * @a processor gets called at all for some content.
*
* @note @a processor is expected to be relatively short function with
* at most O(content size) runtime.
- *
+ *
* @since New in 1.8.
*/
svn_error_t *
@@ -2087,6 +2060,41 @@ svn_fs_youngest_rev(svn_revnum_t *younge
apr_pool_t *pool);
+/**
+ * Return filesystem format information for @a fs.
+ *
+ * Set @a *fs_format to the filesystem format number of @a fs, which is
+ * an integer that increases when incompatible changes are made (such as
+ * by #svn_fs_upgrade).
+ *
+ * Set @a *supports_version to the version number of the minimum Subversion GA
+ * release that can read and write @a fs.
+ *
+ * @see svn_repos_info_format()
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_fs_info_format(int *fs_format,
+ svn_version_t **supports_version,
+ svn_fs_t *fs,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Return a list of admin-serviceable config files for @a fs. @a *files
+ * will be set to an array containing paths as C strings.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_fs_info_config_files(apr_array_header_t **files,
+ svn_fs_t *fs,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+
+
/** Provide filesystem @a fs the opportunity to compress storage relating to
* associated with @a revision in filesystem @a fs. Use @a pool for all
* allocations.
@@ -2467,8 +2475,164 @@ svn_fs_pack(const char *db_path,
apr_pool_t *pool);
+/**
+ * Perform backend-specific data consistency and correctness validations
+ * to the Subversion filesystem (mainly the meta-data) located in the
+ * directory @a path. Use the backend-specific configuration @a fs_config
+ * when opening the filesystem. @a NULL is valid for all backends.
+ * Use @a scratch_pool for temporary allocations.
+ *
+ * @a start and @a end define the (minimum) range of revisions to check.
+ * If @a start is #SVN_INVALID_REVNUM, it defaults to @c r0. Likewise,
+ * @a end will default to the current youngest repository revision when
+ * given as #SVN_INVALID_REVNUM. Since meta data checks may have to touch
+ * other revisions as well, you may receive notifications for revisions
+ * outside the specified range. In fact, it is perfectly legal for a FS
+ * implementation to always check all revisions.
+ *
+ * Global invariants are only guaranteed to get verified when @a r0 has
+ * been included in the range of revisions to check.
+ *
+ * The optional @a notify_func callback is only a general feedback that
+ * the operation is still in process but may be called in random revisions
+ * order and more than once for the same revision, i.e. r2, r1, r2 would
+ * be a valid sequence.
+ *
+ * The optional @a cancel_func callback will be invoked as usual to allow
+ * the user to preempt this potentially lengthy operation.
+ *
+ * @note You probably don't want to use this directly. Take a look at
+ * svn_repos_verify_fs2() instead, which does non-backend-specific
+ * verifications as well.
+ *
+ * @note To ensure a full verification using all tests and covering all
+ * revisions, you must call this function *and* #svn_fs_verify_rev.
+ *
+ * @note Implementors, please do tests that can be done efficiently for
+ * a single revision in #svn_fs_verify_root. This function is meant for
+ * global checks or tests that require an expensive context setup.
+ *
+ * @see svn_repos_verify_fs2()
+ * @see svn_fs_verify_root()
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_fs_verify(const char *path,
+ apr_hash_t *fs_config,
+ svn_revnum_t start,
+ svn_revnum_t end,
+ svn_fs_progress_notify_func_t notify_func,
+ void *notify_baton,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Perform backend-specific data consistency and correctness validations
+ * of @a root in the Subversion filesystem @a fs. @a root is typically
+ * a revision root (see svn_fs_revision_root()), but may be a
+ * transaction root. Use @a scratch_pool for temporary allocations.
+ *
+ * @note You probably don't want to use this directly. Take a look at
+ * svn_repos_verify_fs2() instead, which does non-backend-specific
+ * verifications as well.
+ *
+ * @note To ensure a full verification using all available tests and
+ * covering all revisions, you must call both this function and
+ * #svn_fs_verify.
+ *
+ * @note Implementors, please perform tests that cannot be done
+ * efficiently for a single revision in #svn_fs_verify. This function
+ * is intended for local checks that don't require an expensive context
+ * setup.
+ *
+ * @see svn_repos_verify_fs2()
+ * @see svn_fs_verify()
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_fs_verify_root(svn_fs_root_t *root,
+ apr_pool_t *scratch_pool);
+
/** @} */
+/**
+ * @defgroup fs_info Filesystem information subsystem
+ * @{
+ */
+
+/**
+ * A structure that provides some information about a filesystem.
+ * Returned by svn_fs_info() for #SVN_FS_TYPE_FSFS filesystems.
+ *
+ * @note Fields may be added to the end of this structure in future
+ * versions. Therefore, users shouldn't allocate structures of this
+ * type, to preserve binary compatibility.
+ *
+ * @since New in 1.9.
+ */
+typedef struct svn_fs_fsfs_info_t {
+
+ /** Filesystem backend (#fs_type), i.e., the string #SVN_FS_TYPE_FSFS. */
+ const char *fs_type;
+
+ /** Shard size, or 0 if the filesystem is not currently sharded. */
+ int shard_size;
+
+ /** The smallest revision (as #svn_revnum_t) which is not in a pack file.
+ * @note Zero (0) if (but not iff) the format does not support packing. */
+ svn_revnum_t min_unpacked_rev;
+
+ /* ### TODO: information about fsfs.conf? rep-cache.db? write locks? */
+
+ /* If you add fields here, check whether you need to extend svn_fs_info()
+ or svn_fs_info_dup(). */
+} svn_fs_fsfs_info_t;
+
+/** @see svn_fs_info()
+ * @since New in 1.9. */
+typedef struct svn_fs_info_placeholder_t {
+ /** @see svn_fs_type() */
+ const char *fs_type;
+
+ /* Do not add new fields here, to maintain compatibility with the first
+ released version of svn_fs_fsfs_info_t. */
+} svn_fs_info_placeholder_t;
+
+/**
+ * Set @a *fs_info to a struct describing @a fs. The type of the
+ * struct depends on the backend: for #SVN_FS_TYPE_FSFS, the struct will be
+ * of type #svn_fs_fsfs_info_t; otherwise, the struct is guaranteed to be
+ * (compatible with) #svn_fs_info_placeholder_t.
+ *
+ * @see #svn_fs_fsfs_info_t
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_fs_info(const svn_fs_info_placeholder_t **fs_info,
+ svn_fs_t *fs,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Return a duplicate of @a info, allocated in @a pool. The returned struct
+ * will be of the same type as the passed-in struct, which itself must have
+ * been returned from svn_fs_info() or svn_fs_info_dup(). No part of the new
+ * structure will be shared with @a info (except static string constants).
+ *
+ * @see #svn_fs_info_placeholder_t, #svn_fs_fsfs_info_t
+ *
+ * @since New in 1.9.
+ */
+void *
+svn_fs_info_dup(const void *info,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** @} */
#ifdef __cplusplus
}
Modified: subversion/branches/master-passphrase/subversion/include/svn_io.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_io.h?rev=1481041&r1=1481040&r2=1481041&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_io.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_io.h Fri May 10 14:58:47 2013
@@ -182,9 +182,10 @@ svn_io_check_resolved_path(const char *p
* may be @c NULL. If @a file is @c NULL, the file will be created but not
* open.
*
- * If @a delete_when is #svn_io_file_del_on_close, then the @c APR_DELONCLOSE
- * flag will be used when opening the file. The @c APR_BUFFERED flag will
- * always be used.
+ * The file will be deleted according to @a delete_when. If that is
+ * #svn_io_file_del_on_pool_cleanup, it refers to @a result_pool.
+ *
+ * The @c APR_BUFFERED flag will always be used when opening the file.
*
* The first attempt will just append @a suffix. If the result is not
* a unique name, then subsequent attempts will append a dot,
@@ -248,8 +249,9 @@ svn_io_open_uniquely_named(apr_file_t **
* be possible to atomically rename the resulting file due to cross-device
* issues.)
*
- * The file will be deleted according to @a delete_when. If @a delete_when
- * is @c svn_io_file_del_on_close and @a file is @c NULL, the file will be
+ * The file will be deleted according to @a delete_when. If that is
+ * #svn_io_file_del_on_pool_cleanup, it refers to @a result_pool. If it
+ * is #svn_io_file_del_on_close and @a file is @c NULL, the file will be
* deleted before this function returns.
*
* When passing @c svn_io_file_del_none please don't forget to eventually
@@ -617,6 +619,8 @@ svn_io_filesizes_different_p(svn_boolean
* definitely different. That is, if the size of one or both files
* cannot be determined (due to stat() returning an error), then the sizes
* are not known to be different, so @a *different_p12 is set to 0.
+ *
+ * @since New in 1.8.
*/
svn_error_t *
svn_io_filesizes_three_different_p(svn_boolean_t *different_p12,
@@ -662,9 +666,12 @@ svn_io_files_contents_same_p(svn_boolean
apr_pool_t *pool);
/** Set @a *same12 to TRUE if @a file1 and @a file2 have the same
- * contents, else set it to FALSE. Do the similar for @a *same23
- * with @a file2 and @a file3, and @a *same13 for @a file1 and @a
- * file3. Use @a pool for temporary allocations.
+ * contents, else set it to FALSE. Do the similar for @a *same23
+ * with @a file2 and @a file3, and @a *same13 for @a file1 and @a
+ * file3. The filenames @a file1, @a file2 and @a file3 are
+ * utf8-encoded. Use @a scratch_pool for temporary allocations.
+ *
+ * @since New in 1.8.
*/
svn_error_t *
svn_io_files_contents_three_same_p(svn_boolean_t *same12,
@@ -740,7 +747,7 @@ svn_io_lock_open_file(apr_file_t *lockfi
* Unlock the file @a lockfile_handle.
*
* Use @a pool for memory allocations. @a pool must be the pool that
- * @a lockfile_handle has been created in or one of its sub-pools.
+ * was passed to svn_io_lock_open_file().
*
* @since New in 1.8.
*/
@@ -912,7 +919,7 @@ svn_stream_empty(apr_pool_t *pool);
/** Return a stream allocated in @a pool which forwards all requests
* to @a stream. Destruction is explicitly excluded from forwarding.
*
- * @see notes/destruction-of-stacked-resources
+ * @see http://subversion.apache.org/docs/community-guide/conventions.html#destruction-of-stacked-resources
*
* @since New in 1.4.
*/
@@ -967,7 +974,8 @@ svn_stream_open_writable(svn_stream_t **
* be possible to atomically rename the resulting file due to cross-device
* issues.)
*
- * The file will be deleted according to @a delete_when.
+ * The file will be deleted according to @a delete_when. If that is
+ * #svn_io_file_del_on_pool_cleanup, it refers to @a result_pool.
*
* Temporary allocations will be performed in @a scratch_pool.
*
@@ -1365,6 +1373,15 @@ svn_string_from_stream(svn_string_t **re
/** A function type provided for use as a callback from
* @c svn_stream_lazyopen_create().
*
+ * The callback function shall open a new stream and set @a *stream to
+ * the stream object, allocated in @a result_pool. @a baton is the
+ * callback baton that was passed to svn_stream_lazyopen_create().
+ *
+ * @a result_pool is the result pool that was passed to
+ * svn_stream_lazyopen_create(). The callback function may use
+ * @a scratch_pool for temporary allocations; the caller may clear or
+ * destroy @a scratch_pool any time after the function returns.
+ *
* @since New in 1.8.
*/
typedef svn_error_t *
@@ -1376,20 +1393,22 @@ typedef svn_error_t *
/** Return a generic stream which wraps another primary stream,
* delaying the "opening" of that stream until the first time the
- * stream is accessed.
+ * returned stream is accessed.
*
* @a open_func and @a open_baton are a callback function/baton pair
- * invoked upon the first read of @a *stream which are used to open the
- * "real" source stream.
+ * which will be invoked upon the first access of the returned
+ * stream (read, write, mark, seek, skip, or possibly close). The
+ * callback shall open the primary stream.
*
- * @note If the only "access" the returned stream gets is to close it,
- * @a open_func will not be called.
+ * If the only "access" the returned stream gets is to close it
+ * then @a open_func will only be called if @a open_on_close is TRUE.
*
* @since New in 1.8.
*/
svn_stream_t *
svn_stream_lazyopen_create(svn_stream_lazyopen_func_t open_func,
void *open_baton,
+ svn_boolean_t open_on_close,
apr_pool_t *result_pool);
/** @} */
@@ -1573,12 +1592,13 @@ svn_io_stat_dirent2(const svn_io_dirent2
apr_pool_t *scratch_pool);
-/** Similar to svn_io_stat_dirent2, but always passes FALSE for
- * verify_truename.
+/** Similar to svn_io_stat_dirent2(), but always passes FALSE for
+ * @a verify_truename.
*
* @since New in 1.7.
* @deprecated Provided for backwards compatibility with the 1.7 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_io_stat_dirent(const svn_io_dirent2_t **dirent_p,
const char *path,
@@ -1653,17 +1673,20 @@ svn_io_dir_walk(const char *dirname,
*
* If @a inherit is TRUE, the invoked program inherits its environment from
* the caller and @a cmd, if not absolute, is searched for in PATH.
- * Otherwise, the invoked program runs with an empty environment and @a cmd
- * must be an absolute path.
*
- * If @a inherit is FALSE and @a env is not NULL, the invoked program
- * inherits the environment defined by @a env, instead of an empty
- * environment or the caller's environment.
+ * If @a inherit is FALSE @a cmd must be an absolute path and the invoked
+ * program inherits the environment defined by @a env or runs with an empty
+ * environment in @a env is NULL.
*
* @note On some platforms, failure to execute @a cmd in the child process
* will result in error output being written to @a errfile, if non-NULL, and
* a non-zero exit status being returned to the parent process.
*
+ * @note An APR bug affects Windows: passing a NULL @a env does not
+ * guarantee the invoked program to run with an empty environment when
+ * @a inherit is FALSE, the program may inherit its parent's environment.
+ * Explicitly pass an empty @a env to get an empty environment.
+ *
* @since New in 1.8.
*/
svn_error_t *svn_io_start_cmd3(apr_proc_t *cmd_proc,
@@ -1687,6 +1710,7 @@ svn_error_t *svn_io_start_cmd3(apr_proc_
* @deprecated Provided for backward compatibility with the 1.7 API
* @since New in 1.7.
*/
+SVN_DEPRECATED
svn_error_t *svn_io_start_cmd2(apr_proc_t *cmd_proc,
const char *path,
const char *cmd,
Modified: subversion/branches/master-passphrase/subversion/include/svn_mergeinfo.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_mergeinfo.h?rev=1481041&r1=1481040&r2=1481041&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_mergeinfo.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_mergeinfo.h Fri May 10 14:58:47 2013
@@ -315,8 +315,8 @@ svn_rangelist_diff(svn_rangelist_t **del
* in sorted order and be compacted to the minimal number of ranges
* needed to represent the merged result.
*
- * If the original rangelisted contain non collapsed adjacent ranges, the
- * final result is not guaranteed to be compacted either.
+ * If the original rangelist contains non-collapsed adjacent ranges,
+ * the final result is not guaranteed to be compacted either.
*
* Use @a scratch_pool for temporary allocations.
*
Modified: subversion/branches/master-passphrase/subversion/include/svn_path.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_path.h?rev=1481041&r1=1481040&r2=1481041&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_path.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_path.h Fri May 10 14:58:47 2013
@@ -677,10 +677,9 @@ svn_path_cstring_to_utf8(const char **pa
* @{
*/
-
/**
- * Return true iff @a path is a repository-relative URL: specifically that
- * it starts with the characters "^/"
+ * Return @c TRUE iff @a path is a repository-relative URL: specifically
+ * that it starts with the characters "^/"
*
* @a path is in UTF-8 encoding.
*
@@ -694,22 +693,20 @@ svn_path_is_repos_relative_url(const cha
/**
* Set @a absolute_url to the absolute URL represented by @a relative_url
- * relative to @a repos_root_url. @a absolute_url will be allocated in
- * @a pool.
- *
- * @a absolute_url will end with a peg revision specifier if @a relative_url
- * did.
+ * relative to @a repos_root_url, preserving any peg revision
+ * specifier present in @a relative_url. Allocate @a absolute_url
+ * from @a pool.
*
* @a relative_url is in repository-relative syntax: "^/[REL-URL][@PEG]"
*
- * @a repos_root_url is the absolute url of the repository root.
+ * @a repos_root_url is the absolute URL of the repository root.
*
* All strings are in UTF-8 encoding.
*
* @a repos_root_url and @a relative_url do not have to be properly
- * URI-encoded, canonical, or valid in any other way. The caller is expected
- * to perform canonicalization on @a absolute_url after the call to the
- * function.
+ * URI-encoded, canonical, or valid in any other way. The caller is
+ * expected to perform canonicalization on @a absolute_url after the
+ * call to the function.
*
* @since New in 1.8.
*/
@@ -719,7 +716,6 @@ svn_path_resolve_repos_relative_url(cons
const char *repos_root_url,
apr_pool_t *pool);
-
/** @} */
#ifdef __cplusplus
Modified: subversion/branches/master-passphrase/subversion/include/svn_pools.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_pools.h?rev=1481041&r1=1481040&r2=1481041&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_pools.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_pools.h Fri May 10 14:58:47 2013
@@ -90,14 +90,17 @@ svn_pool_create_ex_debug(pool, allocator
* new allocator to #SVN_ALLOCATOR_RECOMMENDED_MAX_FREE and ensures
* proper synchronization if the allocator is used by multiple threads.
*
- * If your application uses multiple threads, creating a separate allocator
- * for each of these threads may not be feasible. Set the @a thread_safe
- * parameter to @c TRUE in that case. Pools will still not thread-safe, i.e.
- * access to them may require explicit serialization. Set the parameter to
- * @c FALSE, otherwise, to maximize performance.
+ * If your application uses multiple threads, creating a separate
+ * allocator for each of these threads may not be feasible. Set the
+ * @a thread_safe parameter to @c TRUE in that case; otherwise, set @a
+ * thread_safe to @c FALSE to maximize performance.
*
- * To access the owner pool, which can also serve as the root pool for your
- * sub-pools, call @c apr_allocator_get_owner().
+ * @note Even if @a thread_safe is @c TRUE, pools themselves will
+ * still not be thread-safe and their access may require explicit
+ * serialization.
+ *
+ * To access the owner pool, which can also serve as the root pool for
+ * your sub-pools, call @c apr_allocator_get_owner().
*
* @since: New in 1.8
*/
Modified: subversion/branches/master-passphrase/subversion/include/svn_props.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_props.h?rev=1481041&r1=1481040&r2=1481041&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_props.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_props.h Fri May 10 14:58:47 2013
@@ -91,12 +91,15 @@ svn_prop_array_dup(const apr_array_heade
*/
typedef struct svn_prop_inherited_item_t
{
- /** The absolute working copy path, relative filesystem path, or URL from
- * which the properties in @a prop_hash are inherited. */
+ /** The absolute working copy path, relative filesystem path, or URL
+ * from which the properties in @a prop_hash are inherited. (For
+ * details about which path specification format is in use for a
+ * particular instance of this structure, consult the documentation
+ * for the API which produced it.) */
const char *path_or_url;
- /** A hash of (const char *) inherited property names, and (svn_string_t *)
- * property values. */
+ /** A hash of (<tt>const char *</tt>) inherited property names, and
+ * (<tt>svn_string_t *</tt>) property values. */
apr_hash_t *prop_hash;
} svn_prop_inherited_item_t;
@@ -169,7 +172,7 @@ typedef enum svn_prop_kind
/** Return the property kind of a property named @a prop_name.
*
- * @since New in 1.8
+ * @since New in 1.8.
*/
svn_prop_kind_t
svn_property_kind2(const char *prop_name);
@@ -208,58 +211,58 @@ svn_prop_has_svn_prop(const apr_hash_t *
/** Return @c TRUE iff @a prop_name is a Subversion property whose
* value is interpreted as a boolean.
*
- * @since New in 1.5
+ * @since New in 1.5.
*/
svn_boolean_t
svn_prop_is_boolean(const char *prop_name);
/** Return @c TRUE iff @a prop_name is in the "svn:" name space and is a
- * known revision property. For example, svn:log or svn:date.
+ * known revision property ("svn:log" or "svn:date", e.g.).
*
- * This will return FALSE for any property name that is not known by this
+ * This will return @c FALSE for any property name that is not known by this
* version of the library, even though the name may be known to other (for
* example, later) Subversion software.
*
- * @since New in 1.8
+ * @since New in 1.8.
*/
svn_boolean_t
svn_prop_is_known_svn_rev_prop(const char *prop_name);
/** Return @c TRUE iff @a prop_name is in the "svn:" name space and is a
- * known versioned property that is allowed on a file and/or on a directory.
- * For example, svn:eol-style or svn:ignore or svn:mergeinfo.
+ * known versioned property that is allowed on a file and/or on a
+ * directory ("svn:eol-style", "svn:ignore", or "svn:mergeinfo", e.g.).
*
- * This will return FALSE for any property name that is not known by this
- * version of the library, even though the name may be known to other (for
- * example, later) Subversion software.
+ * This will return @c FALSE for any property name that is not known
+ * by this version of the library, even though the name may be known
+ * to other (for example, later) Subversion software.
*
- * @since New in 1.8
+ * @since New in 1.8.
*/
svn_boolean_t
svn_prop_is_known_svn_node_prop(const char *prop_name);
-/** Return @c TRUE iff @a prop_name is in the "svn:" name space and is a
- * known versioned property that is allowed on a file. For example,
- * svn:eol-style or svn:mergeinfo.
- *
- * This will return FALSE for any property name that is not known by this
- * version of the library, even though the name may be known to other (for
- * example, later) Subversion software.
+/** Return @c TRUE iff @a prop_name is in the "svn:" name space and is
+ * a known versioned property that is allowed on a file
+ * ("svn:eol-style" or "svn:mergeinfo", e.g.).
+ *
+ * This will return @c FALSE for any property name that is not known
+ * by this version of the library, even though the name may be known
+ * to other (for example, later) Subversion software.
*
- * @since New in 1.8
+ * @since New in 1.8.
*/
svn_boolean_t
svn_prop_is_known_svn_file_prop(const char *prop_name);
-/** Return @c TRUE iff @a prop_name represents the name of a Subversion
- * known versioned property that is allowed on a directory. For example,
- * svn:ignore or svn:mergeinfo.
- *
- * This will return FALSE for any property name that is not known by this
- * version of the library, even though the name may be known to other (for
- * example, later) Subversion software.
+/** Return @c TRUE iff @a prop_name is in the "svn:" name space and is
+ * a known versioned property that is allowed on a directory
+ * ("svn:ignore" or "svn:mergeinfo", e.g.).
+ *
+ * This will return @c FALSE for any property name that is not known
+ * by this version of the library, even though the name may be known
+ * to other (for example, later) Subversion software.
*
- * @since New in 1.8
+ * @since New in 1.8.
*/
svn_boolean_t
svn_prop_is_known_svn_dir_prop(const char *prop_name);
@@ -486,9 +489,10 @@ svn_prop_name_is_valid(const char *prop_
/** @} */ /* Meta-data properties */
/**
- * This is a list of all user-vixible and -settable versioned node properties.
+ * This is a list of all user-visible and -settable versioned node
+ * properties.
*
- * @since New in 1.8
+ * @since New in 1.8.
*/
#define SVN_PROP_NODE_ALL_PROPS SVN_PROP_MIME_TYPE, \
SVN_PROP_IGNORE, \
@@ -662,19 +666,25 @@ svn_prop_name_is_valid(const char *prop_
*/
/** The prefix used for all (ephemeral) transaction properties.
- * @since New in 1.8. */
+ *
+ * @since New in 1.8.
+ */
#define SVN_PROP_TXN_PREFIX SVN_PROP_PREFIX "txn-"
/** Identifies the client version compability level. For clients
* compiled against Subversion libraries, this is @c SVN_VER_NUMBER.
* Third-party implementations are advised to use similar formatting
* for values of this property.
- * @since New in 1.8. */
+ *
+ * @since New in 1.8.
+ */
#define SVN_PROP_TXN_CLIENT_COMPAT_VERSION \
SVN_PROP_TXN_PREFIX "client-compat-version"
-
+
/** Identifies the client's user agent string, if any.
- * @since New in 1.8. */
+ *
+ * @since New in 1.8.
+ */
#define SVN_PROP_TXN_USER_AGENT \
SVN_PROP_TXN_PREFIX "user-agent"
@@ -685,7 +695,9 @@ svn_prop_name_is_valid(const char *prop_
* to new properties named @c SVN_PROP_REVISION_PREFIX + "something",
* allowing that information to survive the commit-time removal of
* ephemeral transaction properties.
- * @since New in 1.8. */
+ *
+ * @since New in 1.8.
+ */
#define SVN_PROP_REVISION_PREFIX SVN_PROP_PREFIX "revision-"
Modified: subversion/branches/master-passphrase/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_ra.h?rev=1481041&r1=1481040&r2=1481041&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_ra.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_ra.h Fri May 10 14:58:47 2013
@@ -1078,7 +1078,7 @@ svn_ra_get_mergeinfo(svn_ra_session_t *s
apr_pool_t *pool);
/**
- * Ask the RA layer to update a working copy.
+ * Ask the RA layer to update a working copy to a new revision.
*
* The client initially provides an @a update_editor/@a update_baton to the
* RA layer; this editor contains knowledge of where the change will
@@ -1104,6 +1104,12 @@ svn_ra_get_mergeinfo(svn_ra_session_t *s
* (Note: this means that any subsequent txdeltas coming from the
* server are presumed to apply against the copied file!)
*
+ * Use @a ignore_ancestry to control whether or not items being
+ * updated will be checked for relatedness first. Unrelated items
+ * are typically transmitted to the editor as a deletion of one thing
+ * and the addition of another, but if this flag is @c TRUE,
+ * unrelated items will be diffed as if they were related.
+ *
* The working copy will be updated to @a revision_to_update_to, or the
* "latest" revision if this arg is invalid.
*
@@ -1111,7 +1117,8 @@ svn_ra_get_mergeinfo(svn_ra_session_t *s
* finishing the report, and may not perform any RA operations using
* @a session from within the editing operations of @a update_editor.
*
- * Use @a pool for memory allocation.
+ * Allocate @a *reporter and @a *report_baton in @a result_pool. Use
+ * @a scratch_pool for temporary allocations.
*
* @note The reporter provided by this function does NOT supply copy-
* from information to the diff editor callbacks.
@@ -1120,8 +1127,36 @@ svn_ra_get_mergeinfo(svn_ra_session_t *s
* needed, and sending too much data back, a pre-1.5 'recurse'
* directive may be sent to the server, based on @a depth.
*
+ * @note Pre Subversion 1.8 svnserve based servers never ignore ancestry.
+ *
+ * @note This differs from calling svn_ra_do_switch3() with the current
+ * URL of the target node. Update changes only the revision numbers,
+ * leaving any switched subtrees still switched, whereas switch changes
+ * every node in the tree to a child of the same URL.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_ra_do_update3(svn_ra_session_t *session,
+ const svn_ra_reporter3_t **reporter,
+ void **report_baton,
+ svn_revnum_t revision_to_update_to,
+ const char *update_target,
+ svn_depth_t depth,
+ svn_boolean_t send_copyfrom_args,
+ svn_boolean_t ignore_ancestry,
+ const svn_delta_editor_t *update_editor,
+ void *update_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Similar to svn_ra_do_update3(), but always ignoring ancestry.
+ *
* @since New in 1.5.
+ * @deprecated Provided for compatibility with the 1.4 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_do_update2(svn_ra_session_t *session,
const svn_ra_reporter3_t **reporter,
@@ -1156,56 +1191,12 @@ svn_ra_do_update(svn_ra_session_t *sessi
/**
- * Ask the RA layer to 'switch' a working copy to a new
- * @a switch_url; it's another form of svn_ra_do_update().
- *
- * The client initially provides a @a switch_editor/@a switch_baton to the RA
- * layer; this editor contains knowledge of where the change will
- * begin in the working copy (when open_root() is called).
- *
- * In return, the client receives a @a reporter/@a report_baton. The
- * client then describes its working copy by making calls into the
- * @a reporter.
- *
- * When finished, the client calls @a reporter->finish_report(). The
- * RA layer then does a complete drive of @a switch_editor, ending with
- * close_edit(), to switch the working copy.
- *
- * @a switch_target is an optional single path component will restrict
- * the scope of things affected by the switch to an entry in the
- * directory represented by the @a session's URL, or empty if the
- * entire directory is meant to be switched.
+ * Ask the RA layer to switch a working copy to a new revision and URL.
*
- * Switch the target only as deeply as @a depth indicates.
- *
- * The working copy will be switched to @a revision_to_switch_to, or the
- * "latest" revision if this arg is invalid.
- *
- * If @a send_copyfrom_args is TRUE, then ask the server to send
- * copyfrom arguments to add_file() and add_directory() when possible.
- * (Note: this means that any subsequent txdeltas coming from the
- * server are presumed to apply against the copied file!)
- *
- * Use @a ignore_ancestry to control whether or not items being
- * switched will be checked for relatedness first. Unrelated items
- * are typically transmitted to the editor as a deletion of one thing
- * and the addition of another, but if this flag is @c TRUE,
- * unrelated items will be diffed as if they were related.
- *
- * The caller may not perform any RA operations using
- * @a session before finishing the report, and may not perform
- * any RA operations using @a session from within the editing
- * operations of @a switch_editor.
- *
- * Use @a result_pool for memory allocation and @a scratch_pool for
- * temporary work.
- *
- * @note The reporter provided by this function does NOT supply copy-
- * from information to the diff editor callbacks.
- *
- * @note In order to prevent pre-1.5 servers from doing more work than
- * needed, and sending too much data back, a pre-1.5 'recurse'
- * directive may be sent to the server, based on @a depth.
+ * This is similar to svn_ra_do_update3(), but also changes the URL of
+ * every node in the target tree to a child of the @a switch_url. In
+ * contrast, update changes only the revision numbers, leaving any
+ * switched subtrees still switched.
*
* @note Pre Subversion 1.8 svnserve based servers always ignore ancestry
* and never send copyfrom data.
@@ -1348,7 +1339,7 @@ svn_ra_do_status(svn_ra_session_t *sessi
* it's another form of svn_ra_do_update2().
*
* @note This function cannot be used to diff a single file, only a
- * working copy directory. See the svn_ra_do_switch2() function
+ * working copy directory. See the svn_ra_do_switch3() function
* for more details.
*
* The client initially provides a @a diff_editor/@a diff_baton to the RA
@@ -1977,7 +1968,7 @@ svn_ra_get_deleted_rev(svn_ra_session_t
* paths relative to the repository root URL (of the repository which
* @a ra_session is associated).
*
- * Allocated @a *inherited_props in @a result_pool, use @a scratch_pool
+ * Allocate @a *inherited_props in @a result_pool. Use @a scratch_pool
* for temporary allocations.
*
* @since New in 1.8.
Modified: subversion/branches/master-passphrase/subversion/include/svn_ra_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/include/svn_ra_svn.h?rev=1481041&r1=1481040&r2=1481041&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/include/svn_ra_svn.h (original)
+++ subversion/branches/master-passphrase/subversion/include/svn_ra_svn.h Fri May 10 14:58:47 2013
@@ -164,75 +164,6 @@ typedef struct svn_ra_svn_item_t
typedef svn_error_t *(*svn_ra_svn_edit_callback)(void *baton);
-/**
- * List of all commands supported by the SVN:// protocol.
- *
- * @since New in 1.8
- */
-typedef enum svn_ra_svn_cmd_t
-{
- svn_ra_svn_cmd_target_rev,
- svn_ra_svn_cmd_open_root,
- svn_ra_svn_cmd_delete_entry,
- svn_ra_svn_cmd_add_dir,
- svn_ra_svn_cmd_open_dir,
- svn_ra_svn_cmd_change_dir_prop,
- svn_ra_svn_cmd_close_dir,
- svn_ra_svn_cmd_absent_dir,
- svn_ra_svn_cmd_add_file,
- svn_ra_svn_cmd_open_file,
- svn_ra_svn_cmd_change_file_prop,
- svn_ra_svn_cmd_close_file,
- svn_ra_svn_cmd_absent_file,
- svn_ra_svn_cmd_textdelta_chunk,
- svn_ra_svn_cmd_textdelta_end,
- svn_ra_svn_cmd_apply_textdelta,
- svn_ra_svn_cmd_close_edit,
- svn_ra_svn_cmd_abort_edit,
-
- svn_ra_svn_cmd_set_path,
- svn_ra_svn_cmd_delete_path,
- svn_ra_svn_cmd_link_path,
- svn_ra_svn_cmd_finish_report,
- svn_ra_svn_cmd_abort_report,
-
- svn_ra_svn_cmd_reparent,
- svn_ra_svn_cmd_get_latest_rev,
- svn_ra_svn_cmd_get_dated_rev,
- svn_ra_svn_cmd_change_rev_prop2,
- svn_ra_svn_cmd_change_rev_prop,
- svn_ra_svn_cmd_rev_proplist,
- svn_ra_svn_cmd_rev_prop,
- svn_ra_svn_cmd_get_file,
- svn_ra_svn_cmd_update,
- svn_ra_svn_cmd_switch,
- svn_ra_svn_cmd_status,
- svn_ra_svn_cmd_diff,
- svn_ra_svn_cmd_check_path,
- svn_ra_svn_cmd_stat,
- svn_ra_svn_cmd_get_file_revs,
- svn_ra_svn_cmd_lock,
- svn_ra_svn_cmd_unlock,
- svn_ra_svn_cmd_get_lock,
- svn_ra_svn_cmd_get_locks,
- svn_ra_svn_cmd_replay,
- svn_ra_svn_cmd_replay_range,
- svn_ra_svn_cmd_get_deleted_rev,
- svn_ra_svn_cmd_get_iprops,
- svn_ra_svn_cmd_finish_replay,
-
- svn_ra_svn_cmd__last
-} svn_ra_svn_cmd_t;
-
-/**
- * Set the shim callbacks to be used by @a conn to @a shim_callbacks.
- *
- * @note This is a private API, external consumers should not use it.
- */
-svn_error_t *
-svn_ra_svn__set_shim_callbacks(svn_ra_svn_conn_t *conn,
- svn_delta_shim_callbacks_t *shim_callbacks);
-
/** Initialize a connection structure for the given socket or
* input/output files.
*
@@ -240,6 +171,14 @@ svn_ra_svn__set_shim_callbacks(svn_ra_sv
* @a compression_level specifies the desired network data compression
* level (zlib) from 0 (no compression) to 9 (best but slowest).
*
+ * If @a zero_copy_limit is not 0, cached file contents smaller than the
+ * given limit may be sent directly to the network socket. Otherwise,
+ * it will be copied into a temporary buffer before being forwarded to
+ * the network stack. Since the zero-copy code path has to enforce strict
+ * time-outs, the receiver must be able to process @a zero_copy_limit
+ * bytes within one second. Even temporary failure to do so may cause
+ * the server to cancel the respective operation with a time-out error.
+ *
* To reduce the overhead of checking for cancellation requests from the
* data receiver, set @a error_check_interval to some non-zero value.
* It defines the number of bytes that must have been sent since the last
@@ -264,6 +203,7 @@ svn_ra_svn_conn_t *svn_ra_svn_create_con
*
* @deprecated Provided for backward compatibility with the 1.7 API.
*/
+SVN_DEPRECATED
svn_ra_svn_conn_t *
svn_ra_svn_create_conn2(apr_socket_t *sock,
apr_file_t *in_file,
@@ -301,14 +241,17 @@ svn_boolean_t
svn_ra_svn_has_capability(svn_ra_svn_conn_t *conn,
const char *capability);
-/** Return the data compression level to use for network transmissions
+/** Return the data compression level to use for network transmissions.
*
* @since New in 1.7.
*/
int
svn_ra_svn_compression_level(svn_ra_svn_conn_t *conn);
-/** Return the zero-copy data block limit to use for network transmissions
+/** Return the zero-copy data block limit to use for network
+ * transmissions.
+ *
+ * @see http://en.wikipedia.org/wiki/Zero-copy
*
* @since New in 1.8.
*/
@@ -320,10 +263,82 @@ svn_ra_svn_zero_copy_limit(svn_ra_svn_co
const char *
svn_ra_svn_conn_remote_host(svn_ra_svn_conn_t *conn);
+/** Set @a *editor and @a *edit_baton to an editor which will pass editing
+ * operations over the network, using @a conn and @a pool.
+ *
+ * Upon successful completion of the edit, the editor will invoke @a callback
+ * with @a callback_baton as an argument.
+ */
+void
+svn_ra_svn_get_editor(const svn_delta_editor_t **editor,
+ void **edit_baton,
+ svn_ra_svn_conn_t *conn,
+ apr_pool_t *pool,
+ svn_ra_svn_edit_callback callback,
+ void *callback_baton);
+
+/** Receive edit commands over the network and use them to drive @a editor
+ * with @a edit_baton. On return, @a *aborted will be set if the edit was
+ * aborted. The drive can be terminated with a finish-replay command only
+ * if @a for_replay is TRUE.
+ *
+ * @since New in 1.4.
+ */
+svn_error_t *
+svn_ra_svn_drive_editor2(svn_ra_svn_conn_t *conn,
+ apr_pool_t *pool,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ svn_boolean_t *aborted,
+ svn_boolean_t for_replay);
+
+/** Like svn_ra_svn_drive_editor2, but with @a for_replay always FALSE.
+ *
+ * @deprecated Provided for backward compatibility with the 1.3 API.
+ */
+SVN_DEPRECATED
+svn_error_t *
+svn_ra_svn_drive_editor(svn_ra_svn_conn_t *conn,
+ apr_pool_t *pool,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ svn_boolean_t *aborted);
+
+/** This function is only intended for use by svnserve.
+ *
+ * Perform CRAM-MD5 password authentication. On success, return
+ * SVN_NO_ERROR with *user set to the username and *success set to
+ * TRUE. On an error which can be reported to the client, report the
+ * error and return SVN_NO_ERROR with *success set to FALSE. On
+ * communications failure, return an error.
+ */
+svn_error_t *
+svn_ra_svn_cram_server(svn_ra_svn_conn_t *conn,
+ apr_pool_t *pool,
+ svn_config_t *pwdb,
+ const char **user,
+ svn_boolean_t *success);
+
+/**
+ * Get libsvn_ra_svn version information.
+ * @since New in 1.1.
+ */
+const svn_version_t *
+svn_ra_svn_version(void);
+
+/**
+ * @defgroup ra_svn_deprecated ra_svn low-level functions
+ * @{
+ */
+
/** Write a number over the net.
*
* Writes will be buffered until the next read or flush.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_write_number(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
@@ -332,7 +347,11 @@ svn_ra_svn_write_number(svn_ra_svn_conn_
/** Write a string over the net.
*
* Writes will be buffered until the next read or flush.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_write_string(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
@@ -341,7 +360,11 @@ svn_ra_svn_write_string(svn_ra_svn_conn_
/** Write a cstring over the net.
*
* Writes will be buffered until the next read or flush.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_write_cstring(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
@@ -350,7 +373,11 @@ svn_ra_svn_write_cstring(svn_ra_svn_conn
/** Write a word over the net.
*
* Writes will be buffered until the next read or flush.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_write_word(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
@@ -360,18 +387,32 @@ svn_ra_svn_write_word(svn_ra_svn_conn_t
* in which case an empty list will be written out.
*
* @since New in 1.5.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_write_proplist(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
apr_hash_t *props);
-/** Begin a list. Writes will be buffered until the next read or flush. */
+/** Begin a list. Writes will be buffered until the next read or flush.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
+ */
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_start_list(svn_ra_svn_conn_t *conn,
apr_pool_t *pool);
-/** End a list. Writes will be buffered until the next read or flush. */
+/** End a list. Writes will be buffered until the next read or flush.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
+ */
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_end_list(svn_ra_svn_conn_t *conn,
apr_pool_t *pool);
@@ -380,7 +421,11 @@ svn_ra_svn_end_list(svn_ra_svn_conn_t *c
*
* Normally this shouldn't be necessary, since the write buffer is flushed
* when a read is attempted.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_flush(svn_ra_svn_conn_t *conn,
apr_pool_t *pool);
@@ -423,13 +468,22 @@ svn_ra_svn_flush(svn_ra_svn_conn_t *conn
for (i = 0; i < n; i++)
SVN_ERR(svn_ra_svn_write_word(conn, pool, words[i]));
SVN_ERR(svn_ra_svn_write_tuple(conn, pool, "!)b", flag)); @endcode
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_write_tuple(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
const char *fmt, ...);
-/** Read an item from the network into @a *item. */
+/** Read an item from the network into @a *item.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
+ */
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_read_item(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
@@ -441,7 +495,11 @@ svn_ra_svn_read_item(svn_ra_svn_conn_t *
* a client connection opened in tunnel mode, since people's dotfiles
* sometimes write output to stdout. It may only be called at the
* beginning of a client connection.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_skip_leading_garbage(svn_ra_svn_conn_t *conn,
apr_pool_t *pool);
@@ -477,7 +535,11 @@ svn_ra_svn_skip_leading_garbage(svn_ra_s
* SVN_RA_SVN_UNSPECIFIED_NUMBER, and 's', 'c', 'w', and 'l' values
* will be set to @c NULL. 'b' may not appear inside an optional
* tuple specification; use 'B' instead.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_parse_tuple(const apr_array_header_t *list,
apr_pool_t *pool,
@@ -485,7 +547,11 @@ svn_ra_svn_parse_tuple(const apr_array_h
/** Read a tuple from the network and parse it as a tuple, using the
* format string notation from svn_ra_svn_parse_tuple().
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_read_tuple(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
@@ -495,7 +561,11 @@ svn_ra_svn_read_tuple(svn_ra_svn_conn_t
* properties, storing the properties in a hash table.
*
* @since New in 1.5.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_parse_proplist(const apr_array_header_t *list,
apr_pool_t *pool,
@@ -503,7 +573,11 @@ svn_ra_svn_parse_proplist(const apr_arra
/** Read a command response from the network and parse it as a tuple, using
* the format string notation from svn_ra_svn_parse_tuple().
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_read_cmd_response(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
@@ -522,7 +596,10 @@ svn_ra_svn_read_cmd_response(svn_ra_svn_
*
* @since New in 1.6.
*
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_handle_commands2(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
@@ -546,7 +623,7 @@ svn_ra_svn_handle_commands(svn_ra_svn_co
* as svn_ra_svn_write_tuple().
*
* @deprecated Provided for backward compatibility with the 1.7 API.
- * Use svn_ra_svn_write_templated_cmd instead.
+ * RA_SVN low-level functions are no longer considered public.
*/
SVN_DEPRECATED
svn_error_t *
@@ -555,90 +632,34 @@ svn_ra_svn_write_cmd(svn_ra_svn_conn_t *
const char *cmdname,
const char *fmt, ...);
-/** Write a command of type @a cmd over the network connection @a conn.
- * The parameters to be provided are command-specific. @a pool will be
- * used for allocations.
- *
- * @since New in 1.8.
- */
-svn_error_t *
-svn_ra_svn_write_templated_cmd(svn_ra_svn_conn_t *conn,
- apr_pool_t *pool,
- svn_ra_svn_cmd_t cmd, ...);
-
/** Write a successful command response over the network, using the
* same format string notation as svn_ra_svn_write_tuple(). Do not use
* partial tuples with this function; if you need to use partial
* tuples, just write out the "success" and argument tuple by hand.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_write_cmd_response(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
const char *fmt, ...);
-/** Write an unsuccessful command response over the network. */
+/** Write an unsuccessful command response over the network.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * RA_SVN low-level functions are no longer considered public.
+ */
+SVN_DEPRECATED
svn_error_t *
svn_ra_svn_write_cmd_failure(svn_ra_svn_conn_t *conn,
apr_pool_t *pool,
svn_error_t *err);
-/** Set @a *editor and @a *edit_baton to an editor which will pass editing
- * operations over the network, using @a conn and @a pool.
- *
- * Upon successful completion of the edit, the editor will invoke @a callback
- * with @a callback_baton as an argument.
- */
-void
-svn_ra_svn_get_editor(const svn_delta_editor_t **editor,
- void **edit_baton,
- svn_ra_svn_conn_t *conn,
- apr_pool_t *pool,
- svn_ra_svn_edit_callback callback,
- void *callback_baton);
-
-/** Receive edit commands over the network and use them to drive @a editor
- * with @a edit_baton. On return, @a *aborted will be set if the edit was
- * aborted. The drive can be terminated with a finish-replay command only
- * if @a for_replay is TRUE.
- */
-svn_error_t *
-svn_ra_svn_drive_editor2(svn_ra_svn_conn_t *conn,
- apr_pool_t *pool,
- const svn_delta_editor_t *editor,
- void *edit_baton,
- svn_boolean_t *aborted,
- svn_boolean_t for_replay);
-
-/** Like svn_ra_svn_drive_editor2, but with @a for_replay always FALSE.
- */
-svn_error_t *
-svn_ra_svn_drive_editor(svn_ra_svn_conn_t *conn,
- apr_pool_t *pool,
- const svn_delta_editor_t *editor,
- void *edit_baton,
- svn_boolean_t *aborted);
-
-/** This function is only intended for use by svnserve.
- *
- * Perform CRAM-MD5 password authentication. On success, return
- * SVN_NO_ERROR with *user set to the username and *success set to
- * TRUE. On an error which can be reported to the client, report the
- * error and return SVN_NO_ERROR with *success set to FALSE. On
- * communications failure, return an error.
- */
-svn_error_t *
-svn_ra_svn_cram_server(svn_ra_svn_conn_t *conn,
- apr_pool_t *pool,
- svn_config_t *pwdb,
- const char **user,
- svn_boolean_t *success);
-
/**
- * Get libsvn_ra_svn version information.
- * @since New in 1.1.
+ * @}
*/
-const svn_version_t *
-svn_ra_svn_version(void);
#ifdef __cplusplus
}