#include <apr_pools.h>
#include <apr_tables.h>
#include "svn_error.h"
#include "svn_delta.h"
#include "svn_auth.h"
Go to the source code of this file.
Data Structures | |
struct | svn_ra_callbacks_t |
A collection of callbacks implemented by libsvn_client which allows an RA layer to "pull" information from the client application, or possibly store information. More... | |
struct | svn_ra_plugin_t |
The RA Library. More... | |
struct | svn_ra_reporter_t |
The update Reporter. More... | |
Defines | |
#define | SVN_RA_ABI_VERSION 1 |
The current ABI (Application Binary Interface) version for the RA plugin model. | |
Typedefs | |
typedef svn_error_t *(* | svn_ra_get_wc_prop_func_t )(void *baton, const char *relpath, const char *name, const svn_string_t **value, apr_pool_t *pool) |
This is a function type which allows the RA layer to fetch working copy (WC) properties. | |
typedef svn_error_t *(* | svn_ra_set_wc_prop_func_t )(void *baton, const char *path, const char *name, const svn_string_t *value, apr_pool_t *pool) |
This is a function type which allows the RA layer to store new working copy properties during update-like operations. | |
typedef svn_error_t *(* | svn_ra_push_wc_prop_func_t )(void *baton, const char *path, const char *name, const svn_string_t *value, apr_pool_t *pool) |
This is a function type which allows the RA layer to store new working copy properties as part of a commit. | |
typedef svn_error_t *(* | svn_ra_invalidate_wc_props_func_t )(void *baton, const char *path, const char *name, apr_pool_t *pool) |
This is a function type which allows the RA layer to invalidate (i.e., remove) wcprops. | |
typedef svn_error_t *(* | svn_ra_get_latest_revnum_func_t )(void *session_baton, svn_revnum_t *latest_revnum) |
A function type for retrieving the youngest revision from a repos. | |
typedef svn_ra_reporter_t | svn_ra_reporter_t |
The update Reporter. | |
typedef svn_ra_callbacks_t | svn_ra_callbacks_t |
A collection of callbacks implemented by libsvn_client which allows an RA layer to "pull" information from the client application, or possibly store information. | |
typedef svn_ra_plugin_t | svn_ra_plugin_t |
The RA Library. | |
typedef svn_error_t *(* | svn_ra_init_func_t )(int abi_version, apr_pool_t *pool, apr_hash_t *hash) |
libsvn_client will be responsible for loading each RA DSO it needs. | |
Functions | |
svn_error_t * | svn_ra_dav_init (int abi_version, apr_pool_t *pool, apr_hash_t *hash) |
initialize libsvn_ra_dav. | |
svn_error_t * | svn_ra_local_init (int abi_version, apr_pool_t *pool, apr_hash_t *hash) |
initialize libsvn_ra_local. | |
svn_error_t * | svn_ra_svn_init (int abi_version, apr_pool_t *pool, apr_hash_t *hash) |
initialize libsvn_ra_svn. | |
svn_error_t * | svn_ra_init_ra_libs (void **ra_baton, apr_pool_t *pool) |
Initialize the RA libraries. | |
svn_error_t * | svn_ra_get_ra_library (svn_ra_plugin_t **library, void *ra_baton, const char *url, apr_pool_t *pool) |
Return an RA vtable-library (already within ra_baton) which can handle URL. | |
svn_error_t * | svn_ra_print_ra_libraries (svn_stringbuf_t **descriptions, void *ra_baton, apr_pool_t *pool) |
Return a *descriptions string (allocated in pool) that is a textual list of all available RA libraries. |
Definition in file svn_ra.h.
|
The current ABI (Application Binary Interface) version for the RA plugin model. This version number will change when the ABI between the SVN core (e.g. libsvn_client) and the RA plugin changes. An RA plugin should verify that the passed version number is acceptable before accessing the rest of the parameters, and before returning any information. It is entirely acceptable for an RA plugin to accept multiple ABI versions. It can simply interpret the parameters based on the version, and it can return different plugin structures.
|
|
A collection of callbacks implemented by libsvn_client which allows an RA layer to "pull" information from the client application, or possibly store information.
A collection of callbacks implemented by libsvn_client which allows an RA layer to "pull" information from the client application, or possibly store information. libsvn_client passes this vtable to Each routine takes a callback_baton originally provided with the vtable. |
|
This is a function type which allows the RA layer to fetch working copy (WC) properties. The baton is provided along with the function pointer and should be passed back in. This will be the callback_baton or the close_baton as appropriate.
path is relative to the "root" of the session, defined by the repos_url passed to the
name is the name of the property to fetch. If the property is present, then it is returned in value. Otherwise, *value is set to |
|
libsvn_client will be responsible for loading each RA DSO it needs.
However, all "ra_FOO" implementations *must* export a function named
When called by libsvn_client, this routine adds an entry (or entries) to the hash table for any URL schemes it handles. The hash value must be of type ( This type is defined to use the "C Calling Conventions" to ensure that abi_version is the first parameter. The RA plugin must check that value before accessing the other parameters. ### need to force this to be __cdecl on Windows... how?? |
|
This is a function type which allows the RA layer to invalidate (i.e., remove) wcprops.
See the documentation for
Unlike |
|
The RA Library. A vtable structure which encapsulates all the functionality of a particular repository-access implementation. Note: libsvn_client will keep an array of these objects, representing all RA libraries that it has simultaneously loaded into memory. Depending on the situation, the client can look through this array and find the appropriate implementation it needs. |
|
This is a function type which allows the RA layer to store new working copy properties as part of a commit.
See the comments for Note that this might not actually store the new property before returning, but instead schedule it to be changed as part of post-commit processing (in which case a successful commit means the properties got written). Thus, during the commit, it is possible to invoke this function to set a new value for a wc prop, then read the wc prop back from the working copy and get the *old* value. Callers beware. |
|
The update Reporter. A vtable structure which allows a working copy to describe a subset (or possibly all) of its working-copy to an RA layer, for the purposes of an update, switch, status, or diff operation. Paths for report calls are relative to the target (not the anchor) of the operation. Report calls must be made in depth-first order: parents before children, all children of a parent before any siblings of the parent. The first report call must be a set_path with a path argument of "" and a valid revision. (If the target of the operation is locally deleted or missing, use the anchor's revision.) If the target of the operation is deleted or switched relative to the anchor, follow up the initial set_path call with a link_path or delete_path call with a path argument of "" to indicate that. In no other case may there be two report descriptions for the same path. If the target of the operation is a locally added file or directory (which previously did not exist), it may be reported as having revision 0 or as having the parent directory's revision. |
|
This is a function type which allows the RA layer to store new working copy properties during update-like operations.
See the comments for |
|
Return an RA vtable-library (already within ra_baton) which can handle URL. A number of svn_client_* routines will call this internally, but client apps might use it too. For reference, note that according to W3 RFC 1738, a valid URL is of the following form: scheme://<user>:<password>@<host>:<port>/<url-path> Common URLs are as follows: http://subversion.tigris.org/index.html file:///home/joeuser/documents/resume.txt Of interest is the file URL schema, which takes the form file://<host>/<path>, where <host> and <path> are optional. The `/' between <host> and <path> is NOT part of path, yet the RFC doesn't specify how <path> should be formatted. SVN will count on the portability layer to be able to handle the specific formatting of the <path> on a per-system basis. |
|
Initialize the RA libraries.
Every user of the RA layer *must* call this routine and hold on to the ra_baton returned. This baton contains all known methods of accessing a repository, for use within most |