diff options
Diffstat (limited to 'subversion/include/private/svn_client_private.h')
-rw-r--r-- | subversion/include/private/svn_client_private.h | 84 |
1 files changed, 47 insertions, 37 deletions
diff --git a/subversion/include/private/svn_client_private.h b/subversion/include/private/svn_client_private.h index 91ea647..892fc4b 100644 --- a/subversion/include/private/svn_client_private.h +++ b/subversion/include/private/svn_client_private.h @@ -33,11 +33,58 @@ #include "svn_client.h" #include "svn_types.h" +#include "private/svn_diff_tree.h" + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ +/* Set *REVNUM to the revision number identified by REVISION. + + If REVISION->kind is svn_opt_revision_number, just use + REVISION->value.number, ignoring LOCAL_ABSPATH and RA_SESSION. + + Else if REVISION->kind is svn_opt_revision_committed, + svn_opt_revision_previous, or svn_opt_revision_base, or + svn_opt_revision_working, then the revision can be identified + purely based on the working copy's administrative information for + LOCAL_ABSPATH, so RA_SESSION is ignored. If LOCAL_ABSPATH is not + under revision control, return SVN_ERR_UNVERSIONED_RESOURCE, or if + LOCAL_ABSPATH is null, return SVN_ERR_CLIENT_VERSIONED_PATH_REQUIRED. + + Else if REVISION->kind is svn_opt_revision_date or + svn_opt_revision_head, then RA_SESSION is used to retrieve the + revision from the repository (using REVISION->value.date in the + former case), and LOCAL_ABSPATH is ignored. If RA_SESSION is null, + return SVN_ERR_CLIENT_RA_ACCESS_REQUIRED. + + Else if REVISION->kind is svn_opt_revision_unspecified, set + *REVNUM to SVN_INVALID_REVNUM. + + If YOUNGEST_REV is non-NULL, it is an in/out parameter. If + *YOUNGEST_REV is valid, use it as the youngest revision in the + repository (regardless of reality) -- don't bother to lookup the + true value for HEAD, and don't return any value in *REVNUM greater + than *YOUNGEST_REV. If *YOUNGEST_REV is not valid, and a HEAD + lookup is required to populate *REVNUM, then also populate + *YOUNGEST_REV with the result. This is useful for making multiple + serialized calls to this function with a basically static view of + the repository, avoiding race conditions which could occur between + multiple invocations with HEAD lookup requests. + + Else return SVN_ERR_CLIENT_BAD_REVISION. + + Use SCRATCH_POOL for any temporary allocation. */ +svn_error_t * +svn_client__get_revision_number(svn_revnum_t *revnum, + svn_revnum_t *youngest_rev, + svn_wc_context_t *wc_ctx, + const char *local_abspath, + svn_ra_session_t *ra_session, + const svn_opt_revision_t *revision, + apr_pool_t *scratch_pool); + /* Return true if KIND is a revision kind that is dependent on the working * copy. Otherwise, return false. */ #define SVN_CLIENT__REVKIND_NEEDS_WC(kind) \ @@ -200,29 +247,6 @@ svn_client__create_status(svn_client_status_t **cst, apr_pool_t *result_pool, apr_pool_t *scratch_pool); -/* Set *ANCESTOR_URL and *ANCESTOR_REVISION to the URL and revision, - * respectively, of the youngest common ancestor of the two locations - * PATH_OR_URL1@REV1 and PATH_OR_URL2@REV2. Set *ANCESTOR_RELPATH to - * NULL and *ANCESTOR_REVISION to SVN_INVALID_REVNUM if they have no - * common ancestor. This function assumes that PATH_OR_URL1@REV1 and - * PATH_OR_URL2@REV2 both refer to the same repository. - * - * Use the authentication baton cached in CTX to authenticate against - * the repository. - * - * See also svn_client__get_youngest_common_ancestor(). - */ -svn_error_t * -svn_client__youngest_common_ancestor(const char **ancestor_url, - svn_revnum_t *ancestor_rev, - const char *path_or_url1, - const svn_opt_revision_t *revision1, - const char *path_or_url2, - const svn_opt_revision_t *revision2, - svn_client_ctx_t *ctx, - apr_pool_t *result_pool, - apr_pool_t *scratch_pool); - /* Get the repository location of the base node at LOCAL_ABSPATH. * * A pathrev_t wrapper around svn_wc__node_get_base(). @@ -257,20 +281,6 @@ svn_client__wc_node_get_origin(svn_client__pathrev_t **origin_p, apr_pool_t *result_pool, apr_pool_t *scratch_pool); -/* Produce a diff with depth DEPTH between two files or two directories at - * LOCAL_ABSPATH1 and LOCAL_ABSPATH2, using the provided diff callbacks to - * show changes in files. The files and directories involved may be part of - * a working copy or they may be unversioned. For versioned files, show - * property changes, too. */ -svn_error_t * -svn_client__arbitrary_nodes_diff(const char *local_abspath1, - const char *local_abspath2, - svn_depth_t depth, - const svn_wc_diff_callbacks4_t *callbacks, - void *callback_baton, - svn_client_ctx_t *ctx, - apr_pool_t *scratch_pool); - /* Copy the file or directory on URL in some repository to DST_ABSPATH, * copying node information and properties. Resolve URL using PEG_REV and * REVISION. |