svn_client.h File Reference

Public interface for libsvn_client. More...

#include <apr_tables.h>
#include "svn_types.h"
#include "svn_wc.h"
#include "svn_string.h"
#include "svn_error.h"
#include "svn_opt.h"
#include "svn_version.h"
#include "svn_ra.h"
#include "svn_diff.h"

Go to the source code of this file.

Data Structures

struct  svn_client_proplist_item_t
 This is a structure which stores a filename and a hash of property names and values. More...
struct  svn_client_commit_info_t
 Information about commits passed back to client from this module. More...
struct  svn_client_commit_item2_t
 The commit candidate structure. More...
struct  svn_client_commit_item_t
 The commit candidate structure. More...
struct  svn_client_diff_summarize_t
 A struct that describes the diff of an item. More...
struct  svn_client_ctx_t
 A client context structure, which holds client specific callbacks, batons, serves as a cache for configuration options, and other various and sundry things. More...
struct  svn_info_t
 A structure which describes various system-generated metadata about a working-copy path or URL. More...

Defines

Commit state flags
State flags for use with the svn_client_commit_item2_t structure (see the note about the namespace for that structure, which also applies to these flags).

#define SVN_CLIENT_COMMIT_ITEM_ADD   0x01
#define SVN_CLIENT_COMMIT_ITEM_DELETE   0x02
#define SVN_CLIENT_COMMIT_ITEM_TEXT_MODS   0x04
#define SVN_CLIENT_COMMIT_ITEM_PROP_MODS   0x08
#define SVN_CLIENT_COMMIT_ITEM_IS_COPY   0x10
#define SVN_CLIENT_COMMIT_ITEM_LOCK_TOKEN   0x20
 
Since:
New in 1.2.

Authentication information file names
Names of files that contain authentication information.

These filenames are decided by libsvn_client, since this library implements all the auth-protocols; libsvn_wc does nothing but blindly store and retrieve these files from protected areas.

#define SVN_CLIENT_AUTH_USERNAME   "username"
#define SVN_CLIENT_AUTH_PASSWORD   "password"

Typedefs

typedef svn_error_t *(*) svn_client_get_commit_log2_t (const char **log_msg, const char **tmp_file, const apr_array_header_t *commit_items, void *baton, apr_pool_t *pool)
 Callback type used by commit-y operations to get a commit log message from the caller.
typedef svn_error_t *(*) svn_client_get_commit_log_t (const char **log_msg, const char **tmp_file, apr_array_header_t *commit_items, void *baton, apr_pool_t *pool)
 Callback type used by commit-y operations to get a commit log message from the caller.
typedef svn_error_t *(*) svn_client_blame_receiver_t (void *baton, apr_int64_t line_no, svn_revnum_t revision, const char *author, const char *date, const char *line, apr_pool_t *pool)
 Callback type used by svn_client_blame() to notify the caller that line line_no of the blamed file was last changed in revision by author on date, and that the contents were line.
typedef svn_error_t *(*) svn_client_diff_summarize_func_t (const svn_client_diff_summarize_t *diff, void *baton, apr_pool_t *pool)
 A callback used in svn_client_diff_summarize() and svn_client_diff_summarize_peg() for reporting a diff summary.
typedef svn_error_t *(*) svn_client_list_func_t (void *baton, const char *path, const svn_dirent_t *dirent, const svn_lock_t *lock, const char *abs_path, apr_pool_t *pool)
 Invoked by svn_client_list() for each path with its dirent and, if path is locked, its lock.
typedef svn_error_t *(*) svn_info_receiver_t (void *baton, const char *path, const svn_info_t *info, apr_pool_t *pool)
 The callback invoked by svn_client_info().

Enumerations

enum  svn_client_diff_summarize_kind_t {
  svn_client_diff_summarize_kind_normal,
  svn_client_diff_summarize_kind_added,
  svn_client_diff_summarize_kind_modified,
  svn_client_diff_summarize_kind_deleted
}
 The difference type in an svn_diff_summarize_t structure. More...

Functions

const svn_version_tsvn_client_version (void)
 Get libsvn_client version information.
void svn_client_get_simple_prompt_provider (svn_auth_provider_object_t **provider, svn_auth_simple_prompt_func_t prompt_func, void *prompt_baton, int retry_limit, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets information by prompting the user with prompt_func and prompt_baton.
void svn_client_get_username_prompt_provider (svn_auth_provider_object_t **provider, svn_auth_username_prompt_func_t prompt_func, void *prompt_baton, int retry_limit, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_username_t that gets information by prompting the user with prompt_func and prompt_baton.
void svn_client_get_simple_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets/sets information from the user's ~/.subversion configuration directory.
void svn_client_get_windows_simple_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets/sets information from the user's ~/.subversion configuration directory.
void svn_client_get_username_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_username_t that gets/sets information from a user's ~/.subversion configuration directory.
void svn_client_get_ssl_server_trust_file_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_server_trust_t, allocated in pool.
void svn_client_get_ssl_client_cert_file_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_t, allocated in pool.
void svn_client_get_ssl_client_cert_pw_file_provider (svn_auth_provider_object_t **provider, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_pw_t, allocated in pool.
void svn_client_get_ssl_server_trust_prompt_provider (svn_auth_provider_object_t **provider, svn_auth_ssl_server_trust_prompt_func_t prompt_func, void *prompt_baton, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_server_trust_t, allocated in pool.
void svn_client_get_ssl_client_cert_prompt_provider (svn_auth_provider_object_t **provider, svn_auth_ssl_client_cert_prompt_func_t prompt_func, void *prompt_baton, int retry_limit, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_t, allocated in pool.
void svn_client_get_ssl_client_cert_pw_prompt_provider (svn_auth_provider_object_t **provider, svn_auth_ssl_client_cert_pw_prompt_func_t prompt_func, void *prompt_baton, int retry_limit, apr_pool_t *pool)
 Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_pw_t, allocated in pool.
svn_client_proplist_item_tsvn_client_proplist_item_dup (const svn_client_proplist_item_t *item, apr_pool_t *pool)
 Return a duplicate of item, allocated in pool.
svn_client_commit_item2_tsvn_client_commit_item2_dup (const svn_client_commit_item2_t *item, apr_pool_t *pool)
 Return a duplicate of item, allocated in pool.
svn_client_diff_summarize_tsvn_client_diff_summarize_dup (const svn_client_diff_summarize_t *diff, apr_pool_t *pool)
 Return a duplicate of diff, allocated in pool.
svn_error_tsvn_client_create_context (svn_client_ctx_t **ctx, apr_pool_t *pool)
 Initialize a client context.
svn_error_tsvn_client_checkout2 (svn_revnum_t *result_rev, const char *URL, const char *path, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *revision, svn_boolean_t recurse, svn_boolean_t ignore_externals, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Checkout a working copy of URL at revision, looked up at peg_revision, using path as the root directory of the newly checked out working copy, and authenticating with the authentication baton cached in ctx.
svn_error_tsvn_client_checkout (svn_revnum_t *result_rev, const char *URL, const char *path, const svn_opt_revision_t *revision, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_checkout2(), but with the peg_revision parameter always set to svn_opt_revision_unspecified and ignore_externals always set to FALSE.
svn_error_tsvn_client_update2 (apr_array_header_t **result_revs, const apr_array_header_t *paths, const svn_opt_revision_t *revision, svn_boolean_t recurse, svn_boolean_t ignore_externals, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Update working trees paths to revision, authenticating with the authentication baton cached in ctx.
svn_error_tsvn_client_update (svn_revnum_t *result_rev, const char *path, const svn_opt_revision_t *revision, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_update2() except that it accepts only a single target in path, returns a single revision if result_rev is not NULL, and ignore_externals is always set to FALSE.
svn_error_tsvn_client_switch (svn_revnum_t *result_rev, const char *path, const char *url, const svn_opt_revision_t *revision, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Switch working tree path to url at revision, authenticating with the authentication baton cached in ctx.
svn_error_tsvn_client_add3 (const char *path, svn_boolean_t recursive, svn_boolean_t force, svn_boolean_t no_ignore, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Schedule a working copy path for addition to the repository.
svn_error_tsvn_client_add2 (const char *path, svn_boolean_t recursive, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_add3(), but with the no_ignore parameter always set to FALSE.
svn_error_tsvn_client_add (const char *path, svn_boolean_t recursive, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_add2(), but with the force parameter always set to FALSE.
svn_error_tsvn_client_mkdir2 (svn_commit_info_t **commit_info_p, const apr_array_header_t *paths, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Create a directory, either in a repository or a working copy.
svn_error_tsvn_client_mkdir (svn_client_commit_info_t **commit_info_p, const apr_array_header_t *paths, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Same as svn_client_mkdir2(), but takes the svn_client_commit_info_t for commit_info_p.
svn_error_tsvn_client_delete2 (svn_commit_info_t **commit_info_p, const apr_array_header_t *paths, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Delete items from a repository or working copy.
svn_error_tsvn_client_delete (svn_client_commit_info_t **commit_info_p, const apr_array_header_t *paths, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_delete2(), but takes svn_client_commit_info_t for commit_info_p.
svn_error_tsvn_client_import2 (svn_commit_info_t **commit_info_p, const char *path, const char *url, svn_boolean_t nonrecursive, svn_boolean_t no_ignore, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Import file or directory path into repository directory url at head, authenticating with the authentication baton cached in ctx, and using ctx->log_msg_func/ctx->log_msg_baton to get a log message for the (implied) commit.
svn_error_tsvn_client_import (svn_client_commit_info_t **commit_info_p, const char *path, const char *url, svn_boolean_t nonrecursive, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_import2(), but with the no_ignore parameter always set to FALSE and using svn_client_commit_info_t for commit_info_p.
svn_error_tsvn_client_commit3 (svn_commit_info_t **commit_info_p, const apr_array_header_t *targets, svn_boolean_t recurse, svn_boolean_t keep_locks, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Commit files or directories into repository, authenticating with the authentication baton cached in ctx, and using ctx->log_msg_func/ctx->log_msg_baton to obtain the log message.
svn_error_tsvn_client_commit2 (svn_client_commit_info_t **commit_info_p, const apr_array_header_t *targets, svn_boolean_t recurse, svn_boolean_t keep_locks, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_commit3(), but uses svn_client_commit_info_t for commit_info_p.
svn_error_tsvn_client_commit (svn_client_commit_info_t **commit_info_p, const apr_array_header_t *targets, svn_boolean_t nonrecursive, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_commit2(), but with keep_locks set to true and a nonrecursive argument instead of "recurse".
svn_error_tsvn_client_status2 (svn_revnum_t *result_rev, const char *path, const svn_opt_revision_t *revision, svn_wc_status_func2_t status_func, void *status_baton, svn_boolean_t recurse, svn_boolean_t get_all, svn_boolean_t update, svn_boolean_t no_ignore, svn_boolean_t ignore_externals, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Given path to a working copy directory (or single file), call status_func/status_baton with a set of svn_wc_status_t * structures which describe the status of path and its children.
svn_error_tsvn_client_status (svn_revnum_t *result_rev, const char *path, svn_opt_revision_t *revision, svn_wc_status_func_t status_func, void *status_baton, svn_boolean_t recurse, svn_boolean_t get_all, svn_boolean_t update, svn_boolean_t no_ignore, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_status2(), but with the ignore_externals parameter always set to FALSE, and taking a deprecated svn_wc_status_func_t argument, and requiring *revision to be non-const even though it is treated as constant.
svn_error_tsvn_client_log3 (const apr_array_header_t *targets, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start, const svn_opt_revision_t *end, int limit, svn_boolean_t discover_changed_paths, svn_boolean_t strict_node_history, svn_log_message_receiver_t receiver, void *receiver_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Invoke receiver with receiver_baton on each log message from start to end in turn, inclusive (but never invoke receiver on a given log message more than once).
svn_error_tsvn_client_log2 (const apr_array_header_t *targets, const svn_opt_revision_t *start, const svn_opt_revision_t *end, int limit, svn_boolean_t discover_changed_paths, svn_boolean_t strict_node_history, svn_log_message_receiver_t receiver, void *receiver_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_log3(), but with the kind field of the peg_revision parameter set to svn_opt_revision_unspecified.
svn_error_tsvn_client_log (const apr_array_header_t *targets, const svn_opt_revision_t *start, const svn_opt_revision_t *end, svn_boolean_t discover_changed_paths, svn_boolean_t strict_node_history, svn_log_message_receiver_t receiver, void *receiver_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_log2(), but with the limit parameter set to 0, and the following special case:.
svn_error_tsvn_client_blame3 (const char *path_or_url, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start, const svn_opt_revision_t *end, const svn_diff_file_options_t *diff_options, svn_boolean_t ignore_mime_type, svn_client_blame_receiver_t receiver, void *receiver_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Invoke receiver with receiver_baton on each line-blame item associated with revision end of path_or_url, using start as the default source of all blame.
svn_error_tsvn_client_blame2 (const char *path_or_url, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start, const svn_opt_revision_t *end, svn_client_blame_receiver_t receiver, void *receiver_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_blame3(), but with diff_options set to default options as returned by svn_diff_file_options_parse() and ignore_mime_type set to FALSE.
svn_error_tsvn_client_blame (const char *path_or_url, const svn_opt_revision_t *start, const svn_opt_revision_t *end, svn_client_blame_receiver_t receiver, void *receiver_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_blame() except that peg_revision is always the same as end.
svn_error_tsvn_client_diff3 (const apr_array_header_t *diff_options, const char *path1, const svn_opt_revision_t *revision1, const char *path2, const svn_opt_revision_t *revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, const char *header_encoding, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Produce diff output which describes the delta between path1/revision1 and path2/revision2.
svn_error_tsvn_client_diff2 (const apr_array_header_t *diff_options, const char *path1, const svn_opt_revision_t *revision1, const char *path2, const svn_opt_revision_t *revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_diff3(), but with header_encoding set to APR_LOCALE_CHARSET.
svn_error_tsvn_client_diff (const apr_array_header_t *diff_options, const char *path1, const svn_opt_revision_t *revision1, const char *path2, const svn_opt_revision_t *revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_diff2(), but with the ignore_content_type parameter always set to FALSE.
svn_error_tsvn_client_diff_peg3 (const apr_array_header_t *diff_options, const char *path, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, const char *header_encoding, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Produce diff output which describes the delta between the filesystem object path in peg revision peg_revision, as it changed between start_revision and end_revision.
svn_error_tsvn_client_diff_peg2 (const apr_array_header_t *diff_options, const char *path, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_diff_peg3(), but with header_encoding set to APR_LOCALE_CHARSET.
svn_error_tsvn_client_diff_peg (const apr_array_header_t *diff_options, const char *path, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, apr_file_t *outfile, apr_file_t *errfile, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_diff_peg2(), but with the ignore_content_type parameter always set to FALSE.
svn_error_tsvn_client_diff_summarize (const char *path1, const svn_opt_revision_t *revision1, const char *path2, const svn_opt_revision_t *revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_client_diff_summarize_func_t summarize_func, void *summarize_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Produce a diff summary which lists the changed items between path1/revision1 and path2/revision2 without creating text deltas.
svn_error_tsvn_client_diff_summarize_peg (const char *path, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *start_revision, const svn_opt_revision_t *end_revision, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_client_diff_summarize_func_t summarize_func, void *summarize_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Produce a diff summary which lists the changed items between the filesystem object path in peg revision peg_revision, as it changed between start_revision and end_revision.
svn_error_tsvn_client_merge2 (const char *source1, const svn_opt_revision_t *revision1, const char *source2, const svn_opt_revision_t *revision2, const char *target_wcpath, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t force, svn_boolean_t dry_run, const apr_array_header_t *merge_options, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Merge changes from source1/revision1 to source2/revision2 into the working-copy path target_wcpath.
svn_error_tsvn_client_merge (const char *source1, const svn_opt_revision_t *revision1, const char *source2, const svn_opt_revision_t *revision2, const char *target_wcpath, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t force, svn_boolean_t dry_run, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_merge2(), but with merge_options set to NULL.
svn_error_tsvn_client_merge_peg2 (const char *source, const svn_opt_revision_t *revision1, const svn_opt_revision_t *revision2, const svn_opt_revision_t *peg_revision, const char *target_wcpath, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t force, svn_boolean_t dry_run, const apr_array_header_t *merge_options, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Merge the changes between the filesystem object source in peg revision peg_revision, as it changed between revision1 and revision2.
svn_error_tsvn_client_merge_peg (const char *source, const svn_opt_revision_t *revision1, const svn_opt_revision_t *revision2, const svn_opt_revision_t *peg_revision, const char *target_wcpath, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t force, svn_boolean_t dry_run, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_merge_peg2(), but with merge_options set to NULL.
svn_error_tsvn_client_cleanup (const char *dir, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Recursively cleanup a working copy directory dir, finishing any incomplete operations, removing lockfiles, etc.
svn_error_tsvn_client_relocate (const char *dir, const char *from, const char *to, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Modify a working copy directory dir, changing any repository URLs that begin with from to begin with to instead, recursing into subdirectories if recurse is true.
svn_error_tsvn_client_revert (const apr_array_header_t *paths, svn_boolean_t recursive, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Restore the pristine version of a working copy paths, effectively undoing any local mods.
svn_error_tsvn_client_resolved (const char *path, svn_boolean_t recursive, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Remove the 'conflicted' state on a working copy path.
svn_error_tsvn_client_copy3 (svn_commit_info_t **commit_info_p, const char *src_path, const svn_opt_revision_t *src_revision, const char *dst_path, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Copy src_path to dst_path.
svn_error_tsvn_client_copy2 (svn_commit_info_t **commit_info_p, const char *src_path, const svn_opt_revision_t *src_revision, const char *dst_path, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_copy3(), with the difference that if dst_path already exists and is a directory, copy the item into that directory, keeping its name (the last component of src_path).
svn_error_tsvn_client_copy (svn_client_commit_info_t **commit_info_p, const char *src_path, const svn_opt_revision_t *src_revision, const char *dst_path, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_copy2(), but uses svn_client_commit_info_t for commit_info_p.
svn_error_tsvn_client_move4 (svn_commit_info_t **commit_info_p, const char *src_path, const char *dst_path, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Move src_path to dst_path.
svn_error_tsvn_client_move3 (svn_commit_info_t **commit_info_p, const char *src_path, const char *dst_path, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_move4(), with the difference that if dst_path already exists and is a directory, move the item into that directory, keeping its name (the last component of src_path).
svn_error_tsvn_client_move2 (svn_client_commit_info_t **commit_info_p, const char *src_path, const char *dst_path, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_move3(), but uses svn_client_commit_info_t for commit_info_p.
svn_error_tsvn_client_move (svn_client_commit_info_t **commit_info_p, const char *src_path, const svn_opt_revision_t *src_revision, const char *dst_path, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_move2(), but an extra argument src_revision must be passed.
svn_error_tsvn_client_propset2 (const char *propname, const svn_string_t *propval, const char *target, svn_boolean_t recurse, svn_boolean_t skip_checks, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Set propname to propval on target.
svn_error_tsvn_client_propset (const char *propname, const svn_string_t *propval, const char *target, svn_boolean_t recurse, apr_pool_t *pool)
 Like svn_client_propset2(), but with skip_checks always false and a newly created ctx.
svn_error_tsvn_client_revprop_set (const char *propname, const svn_string_t *propval, const char *URL, const svn_opt_revision_t *revision, svn_revnum_t *set_rev, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Set propname to propval on revision revision in the repository represented by URL.
svn_error_tsvn_client_propget2 (apr_hash_t **props, const char *propname, const char *target, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *revision, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Set *props to a hash table whose keys are `char *' paths, prefixed by target (a working copy path or a URL), of items on which property propname is set, and whose values are `svn_string_t *' representing the property value for propname at that path.
svn_error_tsvn_client_propget (apr_hash_t **props, const char *propname, const char *target, const svn_opt_revision_t *revision, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_propget2(), except that the peg revision is always the same as revision.
svn_error_tsvn_client_revprop_get (const char *propname, svn_string_t **propval, const char *URL, const svn_opt_revision_t *revision, svn_revnum_t *set_rev, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Set *propval to the value of propname on revision revision in the repository represented by URL.
svn_error_tsvn_client_proplist2 (apr_array_header_t **props, const char *target, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *revision, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Set *props to the regular properties of target, a URL or working copy path.
svn_error_tsvn_client_proplist (apr_array_header_t **props, const char *target, const svn_opt_revision_t *revision, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_proplist2(), except that the peg revision is always the same as revision.
svn_error_tsvn_client_revprop_list (apr_hash_t **props, const char *URL, const svn_opt_revision_t *revision, svn_revnum_t *set_rev, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Set *props to a hash of the revision props attached to revision in the repository represented by URL.
svn_error_tsvn_client_export3 (svn_revnum_t *result_rev, const char *from, const char *to, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *revision, svn_boolean_t overwrite, svn_boolean_t ignore_externals, svn_boolean_t recurse, const char *native_eol, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Export the contents of either a subversion repository or a subversion working copy into a 'clean' directory (meaning a directory with no administrative directories).
svn_error_tsvn_client_export2 (svn_revnum_t *result_rev, const char *from, const char *to, svn_opt_revision_t *revision, svn_boolean_t force, const char *native_eol, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_export3(), but with the peg_revision parameter always set to svn_opt_revision_unspecified, overwrite set to the value of force, ignore_externals always false, and recurse always true.
svn_error_tsvn_client_export (svn_revnum_t *result_rev, const char *from, const char *to, svn_opt_revision_t *revision, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_export2(), but with the native_eol parameter always set to NULL.
svn_error_tsvn_client_list (const char *path_or_url, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *revision, svn_boolean_t recurse, apr_uint32_t dirent_fields, svn_boolean_t fetch_locks, svn_client_list_func_t list_func, void *baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Report the directory entry, and possibly children, for path_or_url at revision.
svn_error_tsvn_client_ls3 (apr_hash_t **dirents, apr_hash_t **locks, const char *path_or_url, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *revision, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Same as svn_client_list(), but always passes SVN_DIRENT_ALL for the dirent_fields argument and returns all information in two hash tables instead of invoking a callback.
svn_error_tsvn_client_ls2 (apr_hash_t **dirents, const char *path_or_url, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *revision, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Same as svn_client_ls3(), but without the ability to get locks.
svn_error_tsvn_client_ls (apr_hash_t **dirents, const char *path_or_url, svn_opt_revision_t *revision, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_ls2() except that the peg revision is always the same as revision.
svn_error_tsvn_client_cat2 (svn_stream_t *out, const char *path_or_url, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *revision, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Output the content of file identified by path_or_url and revision to the stream out.
svn_error_tsvn_client_cat (svn_stream_t *out, const char *path_or_url, const svn_opt_revision_t *revision, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Similar to svn_client_cat2() except that the peg revision is always the same as revision.
svn_error_tsvn_client_lock (const apr_array_header_t *targets, const char *comment, svn_boolean_t steal_lock, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Lock targets in the repository.
svn_error_tsvn_client_unlock (const apr_array_header_t *targets, svn_boolean_t break_lock, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Unlock targets in the repository.
svn_info_tsvn_info_dup (const svn_info_t *info, apr_pool_t *pool)
 Return a duplicate of info, allocated in pool.
svn_error_tsvn_client_info (const char *path_or_url, const svn_opt_revision_t *peg_revision, const svn_opt_revision_t *revision, svn_info_receiver_t receiver, void *receiver_baton, svn_boolean_t recurse, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Invoke receiver with receiver_baton to return information about path_or_url in revision.
svn_error_tsvn_client_url_from_path (const char **url, const char *path_or_url, apr_pool_t *pool)
 Set *url to the URL for path_or_url.
svn_error_tsvn_client_uuid_from_url (const char **uuid, const char *url, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Get repository uuid for url.
svn_error_tsvn_client_uuid_from_path (const char **uuid, const char *path, svn_wc_adm_access_t *adm_access, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Return the repository uuid for working-copy path, allocated in pool.
svn_error_tsvn_client_open_ra_session (svn_ra_session_t **session, const char *url, svn_client_ctx_t *ctx, apr_pool_t *pool)
 Open an RA session rooted at url, and return it in *session.


Detailed Description

Public interface for libsvn_client.

Definition in file svn_client.h.


Typedef Documentation

typedef svn_error_t*(*) svn_client_blame_receiver_t(void *baton, apr_int64_t line_no, svn_revnum_t revision, const char *author, const char *date, const char *line, apr_pool_t *pool)

Callback type used by svn_client_blame() to notify the caller that line line_no of the blamed file was last changed in revision by author on date, and that the contents were line.

All allocations should be performed in pool.

Note:
If there is no blame information for this line, revision will be invalid and author and date will be NULL.

New in 1.4 is that the line is defined to contain only the line content (and no [partial] EOLs; which was undefined in older versions). Using this callback with svn_client_blame() or svn_client_blame2() will still give you the old behaviour.

Definition at line 490 of file svn_client.h.

typedef svn_error_t*(*) svn_client_diff_summarize_func_t(const svn_client_diff_summarize_t *diff, void *baton, apr_pool_t *pool)

A callback used in svn_client_diff_summarize() and svn_client_diff_summarize_peg() for reporting a diff summary.

All allocations should be performed in pool.

baton is a closure object; it should be provided by the implementation, and passed by the caller.

Since:
New in 1.4.

Definition at line 565 of file svn_client.h.

typedef svn_error_t*(*) svn_client_get_commit_log2_t(const char **log_msg, const char **tmp_file, const apr_array_header_t *commit_items, void *baton, apr_pool_t *pool)

Callback type used by commit-y operations to get a commit log message from the caller.

Set *log_msg to the log message for the commit, allocated in pool, or NULL if wish to abort the commit process. Set *tmp_file to the path of any temporary file which might be holding that log message, or NULL if no such file exists (though, if *log_msg is NULL, this value is undefined). The log message MUST be a UTF8 string with LF line separators.

commit_items is a read-only array of svn_client_commit_item2_t structures, which may be fully or only partially filled-in, depending on the type of commit operation.

baton is provided along with the callback for use by the handler.

All allocations should be performed in pool.

Since:
New in 1.3.

Definition at line 441 of file svn_client.h.

typedef svn_error_t*(*) svn_client_get_commit_log_t(const char **log_msg, const char **tmp_file, apr_array_header_t *commit_items, void *baton, apr_pool_t *pool)

Callback type used by commit-y operations to get a commit log message from the caller.

Set *log_msg to the log message for the commit, allocated in pool, or NULL if wish to abort the commit process. Set *tmp_file to the path of any temporary file which might be holding that log message, or NULL if no such file exists (though, if *log_msg is NULL, this value is undefined). The log message MUST be a UTF8 string with LF line separators.

commit_items is a read-only array of svn_client_commit_item_t structures, which may be fully or only partially filled-in, depending on the type of commit operation.

baton is provided along with the callback for use by the handler.

All allocations should be performed in pool.

Deprecated:
Provided for backward compatibility with the 1.2 API.

Definition at line 468 of file svn_client.h.

typedef svn_error_t*(*) svn_client_list_func_t(void *baton, const char *path, const svn_dirent_t *dirent, const svn_lock_t *lock, const char *abs_path, apr_pool_t *pool)

Invoked by svn_client_list() for each path with its dirent and, if path is locked, its lock.

abs_path is the filesystem path to which path is relative. baton is the baton passed to the caller. pool may be used for temporary allocations.

Since:
New in 1.4.

Definition at line 2307 of file svn_client.h.

typedef svn_error_t*(*) svn_info_receiver_t(void *baton, const char *path, const svn_info_t *info, apr_pool_t *pool)

The callback invoked by svn_client_info().

Each invocation describes path with the information present in info. Note that any fields within info may be NULL if information is unavailable. Use pool for all temporary allocation.

Since:
New in 1.2.

Definition at line 2606 of file svn_client.h.


Enumeration Type Documentation

enum svn_client_diff_summarize_kind_t

The difference type in an svn_diff_summarize_t structure.

Since:
New in 1.4.
Enumerator:
svn_client_diff_summarize_kind_normal  An item with no text modifications.
svn_client_diff_summarize_kind_added  An added item.
svn_client_diff_summarize_kind_modified  An item with text modifications.
svn_client_diff_summarize_kind_deleted  A deleted item.

Definition at line 503 of file svn_client.h.


Function Documentation

svn_error_t* svn_client_add ( const char *  path,
svn_boolean_t  recursive,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_add2(), but with the force parameter always set to FALSE.

Deprecated:
Provided for backward compatibility with the 1.0 API.

svn_error_t* svn_client_add2 ( const char *  path,
svn_boolean_t  recursive,
svn_boolean_t  force,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_add3(), but with the no_ignore parameter always set to FALSE.

Deprecated:
Provided for backward compatibility with the 1.2 API.

svn_error_t* svn_client_add3 ( const char *  path,
svn_boolean_t  recursive,
svn_boolean_t  force,
svn_boolean_t  no_ignore,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Schedule a working copy path for addition to the repository.

path's parent must be under revision control already, but path is not. If recursive is set, then assuming path is a directory, all of its contents will be scheduled for addition as well.

If force is not set and path is already under version control, return the error SVN_ERR_ENTRY_EXISTS. If force is set, do not error on already-versioned items. When used on a directory in conjunction with the recursive flag, this has the effect of scheduling for addition unversioned files and directories scattered deep within a versioned tree.

If ctx->notify_func2 is non-null, then for each added item, call ctx->notify_func2 with ctx->notify_baton2 and the path of the added item.

If no_ignore is FALSE, don't add files or directories that match ignore patterns.

Important: this is a *scheduling* operation. No changes will happen to the repository until a commit occurs. This scheduling can be removed with svn_client_revert().

Since:
New in 1.3.

svn_error_t* svn_client_blame ( const char *  path_or_url,
const svn_opt_revision_t start,
const svn_opt_revision_t end,
svn_client_blame_receiver_t  receiver,
void *  receiver_baton,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_blame() except that peg_revision is always the same as end.

Deprecated:
Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_blame2 ( const char *  path_or_url,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t start,
const svn_opt_revision_t end,
svn_client_blame_receiver_t  receiver,
void *  receiver_baton,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_blame3(), but with diff_options set to default options as returned by svn_diff_file_options_parse() and ignore_mime_type set to FALSE.

Deprecated:
Provided for backwards compatibility with the 1.3 API.
Since:
New in 1.2.

svn_error_t* svn_client_blame3 ( const char *  path_or_url,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t start,
const svn_opt_revision_t end,
const svn_diff_file_options_t diff_options,
svn_boolean_t  ignore_mime_type,
svn_client_blame_receiver_t  receiver,
void *  receiver_baton,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Invoke receiver with receiver_baton on each line-blame item associated with revision end of path_or_url, using start as the default source of all blame.

peg_revision indicates in which revision path_or_url is valid. If peg_revision->kind is svn_opt_revision_unspecified, then it defaults to svn_opt_revision_head for URLs or svn_opt_revision_working for WC targets.

If start->kind or end->kind is svn_opt_revision_unspecified, return the error SVN_ERR_CLIENT_BAD_REVISION. If either are svn_opt_revision_working, return the error SVN_ERR_UNSUPPORTED_FEATURE. If any of the revisions of path_or_url have a binary mime-type, return the error SVN_ERR_CLIENT_IS_BINARY_FILE, unless ignore_mime_type is TRUE, in which case blame information will be generated regardless of the MIME types of the revisions.

Use diff_options to determine how to compare different revisions of the target.

Use pool for any temporary allocation.

Since:
New in 1.4.

svn_error_t* svn_client_cat ( svn_stream_t out,
const char *  path_or_url,
const svn_opt_revision_t revision,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_cat2() except that the peg revision is always the same as revision.

Deprecated:
Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_cat2 ( svn_stream_t out,
const char *  path_or_url,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t revision,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Output the content of file identified by path_or_url and revision to the stream out.

The actual node revision selected is determined by the path as it exists in peg_revision. If peg_revision->kind is svn_opt_revision_unspecified, then it defaults to svn_opt_revision_head for URLs or svn_opt_revision_working for WC targets.

If path_or_url is not a local path, then if revision is of kind svn_opt_revision_previous (or some other kind that requires a local path), an error will be returned, because the desired revision cannot be determined.

Use the authentication baton cached in ctx to authenticate against the repository.

Perform all allocations from pool.

### TODO: Add an expansion/translation flag?

Since:
New in 1.2.

svn_error_t* svn_client_checkout ( svn_revnum_t result_rev,
const char *  URL,
const char *  path,
const svn_opt_revision_t revision,
svn_boolean_t  recurse,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_checkout2(), but with the peg_revision parameter always set to svn_opt_revision_unspecified and ignore_externals always set to FALSE.

Deprecated:
Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_checkout2 ( svn_revnum_t result_rev,
const char *  URL,
const char *  path,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t revision,
svn_boolean_t  recurse,
svn_boolean_t  ignore_externals,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Checkout a working copy of URL at revision, looked up at peg_revision, using path as the root directory of the newly checked out working copy, and authenticating with the authentication baton cached in ctx.

If result_rev is not NULL, set *result_rev to the value of the revision actually checked out from the repository.

If peg_revision->kind is svn_opt_revision_unspecified, then it defaults to svn_opt_revision_head.

revision must be of kind svn_opt_revision_number, svn_opt_revision_head, or svn_opt_revision_date. If revision does not meet these requirements, return the error SVN_ERR_CLIENT_BAD_REVISION.

If ignore_externals is set, don't process externals definitions as part of this operation.

If ctx->notify_func2 is non-null, invoke ctx->notify_func2 with ctx->notify_baton2 as the checkout progresses.

If recurse is true, check out recursively. Otherwise, check out just the directory represented by URL and its immediate non-directory children, but none of its child directories (if any).

If URL refers to a file rather than a directory, return the error SVN_ERR_UNSUPPORTED_FEATURE. If URL does not exist, return the error SVN_ERR_RA_ILLEGAL_URL.

Use pool for any temporary allocation.

Since:
New in 1.2.

svn_error_t* svn_client_cleanup ( const char *  dir,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Recursively cleanup a working copy directory dir, finishing any incomplete operations, removing lockfiles, etc.

If ctx->cancel_func is non-null, invoke it with ctx->cancel_baton at various points during the operation. If it returns an error (typically SVN_ERR_CANCELLED), return that error immediately.

svn_error_t* svn_client_commit ( svn_client_commit_info_t **  commit_info_p,
const apr_array_header_t *  targets,
svn_boolean_t  nonrecursive,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_commit2(), but with keep_locks set to true and a nonrecursive argument instead of "recurse".

Deprecated:
Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_commit2 ( svn_client_commit_info_t **  commit_info_p,
const apr_array_header_t *  targets,
svn_boolean_t  recurse,
svn_boolean_t  keep_locks,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_commit3(), but uses svn_client_commit_info_t for commit_info_p.

Deprecated:
Provided for backward compatibility with the 1.2 API.
Since:
New in 1.2.

svn_error_t* svn_client_commit3 ( svn_commit_info_t **  commit_info_p,
const apr_array_header_t *  targets,
svn_boolean_t  recurse,
svn_boolean_t  keep_locks,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Commit files or directories into repository, authenticating with the authentication baton cached in ctx, and using ctx->log_msg_func/ctx->log_msg_baton to obtain the log message.

Set *commit_info_p to the results of the commit, allocated in pool.

targets is an array of const char * paths to commit. They need not be canonicalized nor condensed; this function will take care of that. If targets has zero elements, then do nothing and return immediately without error.

If ctx->notify_func2 is non-null, then call ctx->notify_func2 with ctx->notify_baton2 as the commit progresses, with any of the following actions: svn_wc_notify_commit_modified, svn_wc_notify_commit_added, svn_wc_notify_commit_deleted, svn_wc_notify_commit_replaced, svn_wc_notify_commit_postfix_txdelta.

If recurse is false, subdirectories of directories in targets will be ignored.

Unlock paths in the repository, unless keep_locks is true.

Use pool for any temporary allocations.

If no error is returned and (*commit_info_p)->revision is set to SVN_INVALID_REVNUM, then the commit was a no-op; nothing needed to be committed.

Since:
New in 1.3.

svn_client_commit_item2_t* svn_client_commit_item2_dup ( const svn_client_commit_item2_t item,
apr_pool_t *  pool 
)

Return a duplicate of item, allocated in pool.

No part of the new structure will be shared with item.

Since:
New in 1.3.

svn_error_t* svn_client_copy ( svn_client_commit_info_t **  commit_info_p,
const char *  src_path,
const svn_opt_revision_t src_revision,
const char *  dst_path,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_copy2(), but uses svn_client_commit_info_t for commit_info_p.

Deprecated:
Provided for backward compatibility with the 1.2 API.

svn_error_t* svn_client_copy2 ( svn_commit_info_t **  commit_info_p,
const char *  src_path,
const svn_opt_revision_t src_revision,
const char *  dst_path,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_copy3(), with the difference that if dst_path already exists and is a directory, copy the item into that directory, keeping its name (the last component of src_path).

Since:
New in 1.3.
Deprecated:
Provided for backward compatibility with the 1.3 API.

svn_error_t* svn_client_copy3 ( svn_commit_info_t **  commit_info_p,
const char *  src_path,
const svn_opt_revision_t src_revision,
const char *  dst_path,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Copy src_path to dst_path.

src_path must be a file or directory under version control, or the URL of a versioned item in the repository. src_revision is used to choose the revision from which to copy the src_path. dst_path must be a non-existent WC path or URL.

If dst_path is a URL, use the authentication baton in ctx and ctx->log_msg_func/ctx->log_msg_baton to immediately attempt to commit the copy action in the repository. If the commit succeeds, allocate (in pool) and populate *commit_info_p.

If dst_path is not a URL, then this is just a variant of svn_client_add(), where the dst_path items are scheduled for addition as copies. No changes will happen to the repository until a commit occurs. This scheduling can be removed with svn_client_revert().

The parent of dst_path must already exist, but if dst_path already exists, fail with SVN_ERR_ENTRY_EXISTS if dst_path is a working copy path and SVN_ERR_FS_ALREADY_EXISTS if dst_path is an URL.

ctx->log_msg_func/ctx->log_msg_baton are a callback/baton combo that this function can use to query for a commit log message when one is needed.

If ctx->notify_func2 is non-null, invoke it with ctx->notify_baton2 for each item added at the new location, passing the new, relative path of the added item.

Since:
New in 1.4.

svn_error_t* svn_client_create_context ( svn_client_ctx_t **  ctx,
apr_pool_t *  pool 
)

Initialize a client context.

Set *ctx to a client context object, allocated in pool, that represents a particular instance of an svn client.

In order to avoid backwards compatibility problems, clients must use this function to intialize and allocate the svn_client_ctx_t structure rather than doing so themselves, as the size of this structure may change in the future.

The current implementation never returns error, but callers should still check for error, for compatibility with future versions.

svn_error_t* svn_client_delete ( svn_client_commit_info_t **  commit_info_p,
const apr_array_header_t *  paths,
svn_boolean_t  force,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_delete2(), but takes svn_client_commit_info_t for commit_info_p.

Deprecated:
Provided for backward compatibility with the 1.2 API.

svn_error_t* svn_client_delete2 ( svn_commit_info_t **  commit_info_p,
const apr_array_header_t *  paths,
svn_boolean_t  force,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Delete items from a repository or working copy.

If the paths in paths are URLs, use the authentication baton in ctx and ctx->log_msg_func/ctx->log_msg_baton to immediately attempt to commit a deletion of the URLs from the repository. If the commit succeeds, allocate (in pool) and populate *commit_info_p. Every path must belong to the same repository.

Else, schedule the working copy paths in paths for removal from the repository. Each path's parent must be under revision control. This is just a *scheduling* operation. No changes will happen to the repository until a commit occurs. This scheduling can be removed with svn_client_revert(). If a path is a file it is immediately removed from the working copy. If the path is a directory it will remain in the working copy but all the files, and all unversioned items, it contains will be removed. If force is not set then this operation will fail if any path contains locally modified and/or unversioned items. If force is set such items will be deleted.

ctx->log_msg_func/ctx->log_msg_baton are a callback/baton combo that this function can use to query for a commit log message when one is needed.

If ctx->notify_func2 is non-null, then for each item deleted, call ctx->notify_func2 with ctx->notify_baton2 and the path of the deleted item.

Since:
New in 1.3.

svn_error_t* svn_client_diff ( const apr_array_header_t *  diff_options,
const char *  path1,
const svn_opt_revision_t revision1,
const char *  path2,
const svn_opt_revision_t revision2,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  no_diff_deleted,
apr_file_t *  outfile,
apr_file_t *  errfile,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_diff2(), but with the ignore_content_type parameter always set to FALSE.

Deprecated:
Provided for backward compatibility with the 1.0 API.

svn_error_t* svn_client_diff2 ( const apr_array_header_t *  diff_options,
const char *  path1,
const svn_opt_revision_t revision1,
const char *  path2,
const svn_opt_revision_t revision2,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  no_diff_deleted,
svn_boolean_t  ignore_content_type,
apr_file_t *  outfile,
apr_file_t *  errfile,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_diff3(), but with header_encoding set to APR_LOCALE_CHARSET.

Deprecated:
Provided for backward compatibility with the 1.2 API.
Since:
New in 1.2.

svn_error_t* svn_client_diff3 ( const apr_array_header_t *  diff_options,
const char *  path1,
const svn_opt_revision_t revision1,
const char *  path2,
const svn_opt_revision_t revision2,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  no_diff_deleted,
svn_boolean_t  ignore_content_type,
const char *  header_encoding,
apr_file_t *  outfile,
apr_file_t *  errfile,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Produce diff output which describes the delta between path1/revision1 and path2/revision2.

Print the output of the diff to outfile, and any errors to errfile. path1 and path2 can be either working-copy paths or URLs.

If either revision1 or revision2 has an `unspecified' or unrecognized `kind', return SVN_ERR_CLIENT_BAD_REVISION.

path1 and path2 must both represent the same node kind -- that is, if path1 is a directory, path2 must also be, and if path1 is a file, path2 must also be.

If recurse is true (and the paths are directories) this will be a recursive operation.

Use ignore_ancestry to control whether or not items being diffed 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 TRUE, unrelated items will be diffed as if they were related.

If no_diff_deleted is true, then no diff output will be generated on deleted files.

Generated headers are encoded using header_encoding.

Diff output will not be generated for binary files, unless ignore_content_type is true, in which case diffs will be shown regardless of the content types.

diff_options (an array of const char *) is used to pass additional command line options to the diff processes invoked to compare files.

The authentication baton cached in ctx is used to communicate with the repository.

Note:
header_encoding doesn't affect headers generated by external diff programs.
Since:
New in 1.3.

svn_error_t* svn_client_diff_peg ( const apr_array_header_t *  diff_options,
const char *  path,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t start_revision,
const svn_opt_revision_t end_revision,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  no_diff_deleted,
apr_file_t *  outfile,
apr_file_t *  errfile,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_diff_peg2(), but with the ignore_content_type parameter always set to FALSE.

Since:
New in 1.1.
Deprecated:
Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_diff_peg2 ( const apr_array_header_t *  diff_options,
const char *  path,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t start_revision,
const svn_opt_revision_t end_revision,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  no_diff_deleted,
svn_boolean_t  ignore_content_type,
apr_file_t *  outfile,
apr_file_t *  errfile,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_diff_peg3(), but with header_encoding set to APR_LOCALE_CHARSET.

Deprecated:
Provided for backward compatibility with the 1.2 API.
Since:
New in 1.2.

svn_error_t* svn_client_diff_peg3 ( const apr_array_header_t *  diff_options,
const char *  path,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t start_revision,
const svn_opt_revision_t end_revision,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  no_diff_deleted,
svn_boolean_t  ignore_content_type,
const char *  header_encoding,
apr_file_t *  outfile,
apr_file_t *  errfile,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Produce diff output which describes the delta between the filesystem object path in peg revision peg_revision, as it changed between start_revision and end_revision.

path can be either a working-copy path or URL.

If peg_revision is svn_opt_revision_unspecified, behave identically to svn_client_diff3(), using path for both of that function's path1 and path2 argments.

All other options are handled identically to svn_client_diff3().

Since:
New in 1.3.

svn_error_t* svn_client_diff_summarize ( const char *  path1,
const svn_opt_revision_t revision1,
const char *  path2,
const svn_opt_revision_t revision2,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_client_diff_summarize_func_t  summarize_func,
void *  summarize_baton,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Produce a diff summary which lists the changed items between path1/revision1 and path2/revision2 without creating text deltas.

path1 and path2 can be either working-copy paths or URLs.

The function may report false positives if ignore_ancestry is false, since a file might have been modified between two revisions, but still have the same contents.

Calls summarize_func with summarize_baton for each difference with a svn_client_diff_summarize_t structure describing the difference.

See svn_client_diff3() for a description of the other parameters.

Since:
New in 1.4.

svn_client_diff_summarize_t* svn_client_diff_summarize_dup ( const svn_client_diff_summarize_t diff,
apr_pool_t *  pool 
)

Return a duplicate of diff, allocated in pool.

No part of the new structure will be shared with diff.

Since:
New in 1.4.

svn_error_t* svn_client_diff_summarize_peg ( const char *  path,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t start_revision,
const svn_opt_revision_t end_revision,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_client_diff_summarize_func_t  summarize_func,
void *  summarize_baton,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Produce a diff summary which lists the changed items between the filesystem object path in peg revision peg_revision, as it changed between start_revision and end_revision.

path can be either a working-copy path or URL.

If peg_revision is svn_opt_revision_unspecified, behave identically to svn_client_diff_summarize(), using path for both of that function's path1 and path2 argments.

The function may report false positives if ignore_ancestry is false, as described in the documentation for svn_client_diff_summarize().

Call summarize_func with summarize_baton for each difference with a svn_client_diff_summarize_t structure describing the difference.

See svn_client_diff_peg3() for a description of the other parameters.

Since:
New in 1.4.

svn_error_t* svn_client_export ( svn_revnum_t result_rev,
const char *  from,
const char *  to,
svn_opt_revision_t revision,
svn_boolean_t  force,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_export2(), but with the native_eol parameter always set to NULL.

Deprecated:
Provided for backward compatibility with the 1.0 API.

svn_error_t* svn_client_export2 ( svn_revnum_t result_rev,
const char *  from,
const char *  to,
svn_opt_revision_t revision,
svn_boolean_t  force,
const char *  native_eol,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_export3(), but with the peg_revision parameter always set to svn_opt_revision_unspecified, overwrite set to the value of force, ignore_externals always false, and recurse always true.

Since:
New in 1.1.
Deprecated:
Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_export3 ( svn_revnum_t result_rev,
const char *  from,
const char *  to,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t revision,
svn_boolean_t  overwrite,
svn_boolean_t  ignore_externals,
svn_boolean_t  recurse,
const char *  native_eol,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Export the contents of either a subversion repository or a subversion working copy into a 'clean' directory (meaning a directory with no administrative directories).

If result_rev is not NULL and the path being exported is a repository URL, set *result_rev to the value of the revision actually exported (set it to SVN_INVALID_REVNUM for local exports).

from is either the path the working copy on disk, or a URL to the repository you wish to export.

to is the path to the directory where you wish to create the exported tree.

peg_revision is the revision where the path is first looked up when exporting from a repository. If peg_revision->kind is svn_opt_revision_unspecified, then it defaults to svn_opt_revision_head for URLs or svn_opt_revision_working for WC targets.

revision is the revision that should be exported, which is only used when exporting from a repository.

ctx->notify_func2 and ctx->notify_baton2 are the notification functions and baton which are passed to svn_client_checkout() when exporting from a repository.

ctx is a context used for authentication in the repository case.

overwrite if true will cause the export to overwrite files or directories.

If ignore_externals is set, don't process externals definitions as part of this operation.

native_eol allows you to override the standard eol marker on the platform you are running on. Can be either "LF", "CR" or "CRLF" or NULL. If NULL will use the standard eol marker. Any other value will cause the SVN_ERR_IO_UNKNOWN_EOL error to be returned.

If recurse is TRUE, export recursively. Otherwise, export just the directory represented by from and its immediate non-directory children, but none of its child directories (if any). Also, if recurse is FALSE, the export will behave as if ignore_externals is TRUE.

All allocations are done in pool.

Since:
New in 1.2.

void svn_client_get_simple_prompt_provider ( svn_auth_provider_object_t **  provider,
svn_auth_simple_prompt_func_t  prompt_func,
void *  prompt_baton,
int  retry_limit,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets information by prompting the user with prompt_func and prompt_baton.

Allocate *provider in pool.

If both SVN_AUTH_PARAM_DEFAULT_USERNAME and SVN_AUTH_PARAM_DEFAULT_PASSWORD are defined as runtime parameters in the auth_baton, then *provider will return the default arguments when svn_auth_first_credentials() is called. If svn_auth_first_credentials() fails, then *provider will re-prompt retry_limit times (via svn_auth_next_credentials()).

Deprecated:
Provided for backward compatibility with the 1.3 API.

void svn_client_get_simple_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets/sets information from the user's ~/.subversion configuration directory.

Allocate *provider in pool.

If a default username or password is available, *provider will honor them as well, and return them when svn_auth_first_credentials() is called. (see SVN_AUTH_PARAM_DEFAULT_USERNAME and SVN_AUTH_PARAM_DEFAULT_PASSWORD).

Deprecated:
Provided for backward compatibility with the 1.3 API.

void svn_client_get_ssl_client_cert_file_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_t, allocated in pool.

*provider retrieves its credentials from the configuration mechanism. The returned credential is used to load the appropriate client certificate for authentication when requested by a server.

Deprecated:
Provided for backward compatibility with the 1.3 API.

void svn_client_get_ssl_client_cert_prompt_provider ( svn_auth_provider_object_t **  provider,
svn_auth_ssl_client_cert_prompt_func_t  prompt_func,
void *  prompt_baton,
int  retry_limit,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_t, allocated in pool.

*provider retrieves its credentials by using the prompt_func and prompt_baton. The returned credential is used to load the appropriate client certificate for authentication when requested by a server. The prompt will be retried retry_limit times.

Deprecated:
Provided for backward compatibility with the 1.3 API.

void svn_client_get_ssl_client_cert_pw_file_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_pw_t, allocated in pool.

*provider retrieves its credentials from the configuration mechanism. The returned credential is used when a loaded client certificate is protected by a passphrase.

Deprecated:
Provided for backward compatibility with the 1.3 API.

void svn_client_get_ssl_client_cert_pw_prompt_provider ( svn_auth_provider_object_t **  provider,
svn_auth_ssl_client_cert_pw_prompt_func_t  prompt_func,
void *  prompt_baton,
int  retry_limit,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_client_cert_pw_t, allocated in pool.

*provider retrieves its credentials by using the prompt_func and prompt_baton. The returned credential is used when a loaded client certificate is protected by a passphrase. The prompt will be retried retry_limit times.

Deprecated:
Provided for backward compatibility with the 1.3 API.

void svn_client_get_ssl_server_trust_file_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_server_trust_t, allocated in pool.

*provider retrieves its credentials from the configuration mechanism. The returned credential is used to override SSL security on an error.

Deprecated:
Provided for backward compatibility with the 1.3 API.

void svn_client_get_ssl_server_trust_prompt_provider ( svn_auth_provider_object_t **  provider,
svn_auth_ssl_server_trust_prompt_func_t  prompt_func,
void *  prompt_baton,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_ssl_server_trust_t, allocated in pool.

*provider retrieves its credentials by using the prompt_func and prompt_baton. The returned credential is used to override SSL security on an error.

Deprecated:
Provided for backward compatibility with the 1.3 API.

void svn_client_get_username_prompt_provider ( svn_auth_provider_object_t **  provider,
svn_auth_username_prompt_func_t  prompt_func,
void *  prompt_baton,
int  retry_limit,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_username_t that gets information by prompting the user with prompt_func and prompt_baton.

Allocate *provider in pool.

If SVN_AUTH_PARAM_DEFAULT_USERNAME is defined as a runtime parameter in the auth_baton, then *provider will return the default argument when svn_auth_first_credentials() is called. If svn_auth_first_credentials() fails, then *provider will re-prompt retry_limit times (via svn_auth_next_credentials()).

Deprecated:
Provided for backward compatibility with the 1.3 API.

void svn_client_get_username_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_username_t that gets/sets information from a user's ~/.subversion configuration directory.

Allocate *provider in pool.

If a default username is available, *provider will honor it, and return it when svn_auth_first_credentials() is called. (see SVN_AUTH_PARAM_DEFAULT_USERNAME).

Deprecated:
Provided for backward compatibility with the 1.3 API.

void svn_client_get_windows_simple_provider ( svn_auth_provider_object_t **  provider,
apr_pool_t *  pool 
)

Create and return *provider, an authentication provider of type svn_auth_cred_simple_t that gets/sets information from the user's ~/.subversion configuration directory.

Allocate *provider in pool.

This is like svn_client_get_simple_provider(), except that, when running on Window 2000 or newer (or any other Windows version that includes the CryptoAPI), the provider encrypts the password before storing it to disk. On earlier versions of Windows, the provider does nothing.

Since:
New in 1.2.
Note:
This function is only available on Windows.

An administrative password reset may invalidate the account's secret key. This function will detect that situation and behave as if the password were not cached at all.

Deprecated:
Provided for backward compatibility with the 1.3 API.

svn_error_t* svn_client_import ( svn_client_commit_info_t **  commit_info_p,
const char *  path,
const char *  url,
svn_boolean_t  nonrecursive,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_import2(), but with the no_ignore parameter always set to FALSE and using svn_client_commit_info_t for commit_info_p.

Deprecated:
Provided for backward compatibility with the 1.2 API.

svn_error_t* svn_client_import2 ( svn_commit_info_t **  commit_info_p,
const char *  path,
const char *  url,
svn_boolean_t  nonrecursive,
svn_boolean_t  no_ignore,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Import file or directory path into repository directory url at head, authenticating with the authentication baton cached in ctx, and using ctx->log_msg_func/ctx->log_msg_baton to get a log message for the (implied) commit.

Set *commit_info_p to the results of the commit, allocated in pool. If some components of url do not exist then create parent directories as necessary.

If path is a directory, the contents of that directory are imported directly into the directory identified by url. Note that the directory path itself is not imported -- that is, the basename of path is not part of the import.

If path is a file, then the dirname of url is the directory receiving the import. The basename of url is the filename in the repository. In this case if url already exists, return error.

If ctx->notify_func2 is non-null, then call ctx->notify_func2 with ctx->notify_baton2 as the import progresses, with any of the following actions: svn_wc_notify_commit_added, svn_wc_notify_commit_postfix_txdelta.

Use pool for any temporary allocation.

ctx->log_msg_func/ctx->log_msg_baton are a callback/baton combo that this function can use to query for a commit log message when one is needed.

Use nonrecursive to indicate that imported directories should not recurse into any subdirectories they may have.

If no_ignore is FALSE, don't add files or directories that match ignore patterns.

### kff todo: This import is similar to cvs import, in that it does not change the source tree into a working copy. However, this behavior confuses most people, and I think eventually svn _should_ turn the tree into a working copy, or at least should offer the option. However, doing so is a bit involved, and we don't need it right now.

Since:
New in 1.3.

svn_error_t* svn_client_info ( const char *  path_or_url,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t revision,
svn_info_receiver_t  receiver,
void *  receiver_baton,
svn_boolean_t  recurse,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Invoke receiver with receiver_baton to return information about path_or_url in revision.

The information returned is system-generated metadata, not the sort of "property" metadata created by users. See svn_info_t.

If both revision arguments are either svn_opt_revision_unspecified or NULL, then information will be pulled solely from the working copy; no network connections will be made.

Otherwise, information will be pulled from a repository. The actual node revision selected is determined by the path_or_url as it exists in peg_revision. If peg_revision->kind is svn_opt_revision_unspecified, then it defaults to svn_opt_revision_head for URLs or svn_opt_revision_working for WC targets.

If path_or_url is not a local path, then if revision is of kind svn_opt_revision_previous (or some other kind that requires a local path), an error will be returned, because the desired revision cannot be determined.

Use the authentication baton cached in ctx to authenticate against the repository.

If recurse is true (and path_or_url is a directory) this will be a recursive operation, invoking receiver on each child.

Since:
New in 1.2.

svn_error_t* svn_client_list ( const char *  path_or_url,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t revision,
svn_boolean_t  recurse,
apr_uint32_t  dirent_fields,
svn_boolean_t  fetch_locks,
svn_client_list_func_t  list_func,
void *  baton,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Report the directory entry, and possibly children, for path_or_url at revision.

The actual node revision selected is determined by the path as it exists in peg_revision. If peg_revision->kind is svn_opt_revision_unspecified, then it defaults to svn_opt_revision_head for URLs or svn_opt_revision_working for WC targets.

Report directory entries by invoking list_func/baton with path relative to path_or_url. The dirent for path_or_url is reported using an empty path. If path_or_url is a directory, also report its children. If path_or_url is non-existent, return SVN_ERR_FS_NOT_FOUND.

If fetch_locks is TRUE, include locks when reporting directory entries.

Use pool for temporary allocations.

Use authentication baton cached in ctx to authenticate against the repository.

If recurse is true (and path_or_url is a directory) this will be a recursive operation.

dirent_fields controls which fields in the svn_dirent_t's are filled in. To have them totally filled in use SVN_DIRENT_ALL, otherwise simply bitwise OR together the combination of SVN_DIRENT_ fields you care about.

Since:
New in 1.4.

svn_error_t* svn_client_log ( const apr_array_header_t *  targets,
const svn_opt_revision_t start,
const svn_opt_revision_t end,
svn_boolean_t  discover_changed_paths,
svn_boolean_t  strict_node_history,
svn_log_message_receiver_t  receiver,
void *  receiver_baton,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_log2(), but with the limit parameter set to 0, and the following special case:.

Special case for repositories at revision 0:

If start->kind is svn_opt_revision_head, and end->kind is svn_opt_revision_number && end->number is 1, then handle an empty (no revisions) repository specially: instead of erroring because requested revision 1 when the highest revision is 0, just invoke receiver on revision 0, passing NULL for changed paths and empty strings for the author and date. This is because that particular combination of start and end usually indicates the common case of log invocation -- the user wants to see all log messages from youngest to oldest, where the oldest commit is revision 1. That works fine, except when there are no commits in the repository, hence this special case.

Deprecated:
Provided for backward compatibility with the 1.0 API.

svn_error_t* svn_client_log2 ( const apr_array_header_t *  targets,
const svn_opt_revision_t start,
const svn_opt_revision_t end,
int  limit,
svn_boolean_t  discover_changed_paths,
svn_boolean_t  strict_node_history,
svn_log_message_receiver_t  receiver,
void *  receiver_baton,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_log3(), but with the kind field of the peg_revision parameter set to svn_opt_revision_unspecified.

Deprecated:
Provided for compatibility with the 1.3 API.
Since:
New in 1.2.

svn_error_t* svn_client_log3 ( const apr_array_header_t *  targets,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t start,
const svn_opt_revision_t end,
int  limit,
svn_boolean_t  discover_changed_paths,
svn_boolean_t  strict_node_history,
svn_log_message_receiver_t  receiver,
void *  receiver_baton,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Invoke receiver with receiver_baton on each log message from start to end in turn, inclusive (but never invoke receiver on a given log message more than once).

targets contains either a URL followed by zero or more relative paths, or a list of working copy paths, as const char *, for which log messages are desired. The repository info is determined by taking the common prefix of the target entries' URLs. receiver is invoked only on messages whose revisions involved a change to some path in targets. peg_revision indicates in which revision targets are valid. If peg_revision is svn_opt_revision_unspecified, it defaults to svn_opt_revision_head for URIs or svn_opt_revision_working for WC targets.

If limit is non-zero only invoke receiver on the first limit logs.

If discover_changed_paths is set, then the `changed_paths' argument to receiver will be passed on each invocation.

If strict_node_history is set, copy history (if any exists) will not be traversed while harvesting revision logs for each target.

If start->kind or end->kind is svn_opt_revision_unspecified, return the error SVN_ERR_CLIENT_BAD_REVISION.

Use pool for any temporary allocation.

IMPORTANT: A special case for the revision range HEAD:1, which was present in svn_client_log(), has been removed from svn_client_log2(). Instead, it is expected that callers will specify the range HEAD:0, to avoid a SVN_ERR_FS_NO_SUCH_REVISION error when invoked against an empty repository (i.e. one not containing a revision 1).

If ctx->notify_func2 is non-null, then call ctx->notify_func2/baton2 with a 'skip' signal on any unversioned targets.

Since:
New in 1.4.

svn_error_t* svn_client_ls ( apr_hash_t **  dirents,
const char *  path_or_url,
svn_opt_revision_t revision,
svn_boolean_t  recurse,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_ls2() except that the peg revision is always the same as revision.

Deprecated:
Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_ls2 ( apr_hash_t **  dirents,
const char *  path_or_url,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t revision,
svn_boolean_t  recurse,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Same as svn_client_ls3(), but without the ability to get locks.

Since:
New in 1.2.
Deprecated:
Provided for backward compatibility with the 1.2 API.

svn_error_t* svn_client_ls3 ( apr_hash_t **  dirents,
apr_hash_t **  locks,
const char *  path_or_url,
const svn_opt_revision_t peg_revision,
const svn_opt_revision_t revision,
svn_boolean_t  recurse,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Same as svn_client_list(), but always passes SVN_DIRENT_ALL for the dirent_fields argument and returns all information in two hash tables instead of invoking a callback.

Set *dirents to a newly allocated hash of directory entries. The dirents hash maps entry names (const char *) to svn_dirent_t *'s.

If locks is not NULL, set *locks to a hash table mapping entry names (const char *) to svn_lock_t *'s.

Since:
New in 1.3.
Deprecated:
Provided for backward compatibility with the 1.3 API.

svn_error_t* svn_client_merge ( const char *  source1,
const svn_opt_revision_t revision1,
const char *  source2,
const svn_opt_revision_t revision2,
const char *  target_wcpath,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  force,
svn_boolean_t  dry_run,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_merge2(), but with merge_options set to NULL.

Deprecated:
Provided for backwards compatibility with the 1.3 API.

svn_error_t* svn_client_merge2 ( const char *  source1,
const svn_opt_revision_t revision1,
const char *  source2,
const svn_opt_revision_t revision2,
const char *  target_wcpath,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  force,
svn_boolean_t  dry_run,
const apr_array_header_t *  merge_options,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Merge changes from source1/revision1 to source2/revision2 into the working-copy path target_wcpath.

source1 and source2 are either URLs that refer to entries in the repository, or paths to entries in the working copy.

By "merging", we mean: apply file differences using svn_wc_merge(), and schedule additions & deletions when appropriate.

source1 and source2 must both represent the same node kind -- that is, if source1 is a directory, source2 must also be, and if source1 is a file, source2 must also be.

If either revision1 or revision2 has an `unspecified' or unrecognized `kind', return SVN_ERR_CLIENT_BAD_REVISION.

If recurse is true (and the URLs are directories), apply changes recursively; otherwise, only apply changes in the current directory.

Use ignore_ancestry to control whether or not items being diffed 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 TRUE, unrelated items will be diffed as if they were related.

If force is not set and the merge involves deleting locally modified or unversioned items the operation will fail. If force is set such items will be deleted.

merge_options (an array of const char *), if non-null, is used to pass additional command line arguments to the merge processes (internal or external).

See also:
svn_diff_file_options_parse().
If ctx->notify_func2 is non-null, then call ctx->notify_func2 with ctx->notify_baton2 once for each merged target, passing the target's local path.

If dry_run is true the merge is carried out, and full notification feedback is provided, but the working copy is not modified.

The authentication baton cached in ctx is used to communicate with the repository.

Since:
New in 1.4.

svn_error_t* svn_client_merge_peg ( const char *  source,
const svn_opt_revision_t revision1,
const svn_opt_revision_t revision2,
const svn_opt_revision_t peg_revision,
const char *  target_wcpath,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  force,
svn_boolean_t  dry_run,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_merge_peg2(), but with merge_options set to NULL.

Deprecated:
Provided for backwards compatibility with the 1.3 API.
Since:
New in 1.1.

svn_error_t* svn_client_merge_peg2 ( const char *  source,
const svn_opt_revision_t revision1,
const svn_opt_revision_t revision2,
const svn_opt_revision_t peg_revision,
const char *  target_wcpath,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  force,
svn_boolean_t  dry_run,
const apr_array_header_t *  merge_options,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Merge the changes between the filesystem object source in peg revision peg_revision, as it changed between revision1 and revision2.

All other options are handled identically to svn_client_merge().

Since:
New in 1.4.

svn_error_t* svn_client_mkdir ( svn_client_commit_info_t **  commit_info_p,
const apr_array_header_t *  paths,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Same as svn_client_mkdir2(), but takes the svn_client_commit_info_t for commit_info_p.

Deprecated:
Provided for backward compatibility with the 1.2 API.

svn_error_t* svn_client_mkdir2 ( svn_commit_info_t **  commit_info_p,
const apr_array_header_t *  paths,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Create a directory, either in a repository or a working copy.

If paths contains URLs, use the authentication baton in ctx and message to immediately attempt to commit the creation of the directories in paths in the repository. If the commit succeeds, allocate (in pool) and populate *commit_info_p.

Else, create the directories on disk, and attempt to schedule them for addition (using svn_client_add(), whose docstring you should read).

ctx->log_msg_func/ctx->log_msg_baton are a callback/baton combo that this function can use to query for a commit log message when one is needed.

If ctx->notify_func2 is non-null, when the directory has been created (successfully) in the working copy, call ctx->notify_func2 with ctx->notify_baton2 and the path of the new directory. Note that this is only called for items added to the working copy.

Since:
New in 1.3.

svn_error_t* svn_client_move ( svn_client_commit_info_t **  commit_info_p,
const char *  src_path,
const svn_opt_revision_t src_revision,
const char *  dst_path,
svn_boolean_t  force,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_move2(), but an extra argument src_revision must be passed.

This has no effect, but must be of kind svn_opt_revision_unspecified or svn_opt_revision_head, otherwise error SVN_ERR_UNSUPPORTED_FEATURE is returned.

Deprecated:
Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_move2 ( svn_client_commit_info_t **  commit_info_p,
const char *  src_path,
const char *  dst_path,
svn_boolean_t  force,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_move3(), but uses svn_client_commit_info_t for commit_info_p.

Deprecated:
Provided for backward compatibility with the 1.2 API.
Since:
New in 1.2.

svn_error_t* svn_client_move3 ( svn_commit_info_t **  commit_info_p,
const char *  src_path,
const char *  dst_path,
svn_boolean_t  force,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_move4(), with the difference that if dst_path already exists and is a directory, move the item into that directory, keeping its name (the last component of src_path).

Since:
New in 1.3.
Deprecated:
Provided for backward compatibility with the 1.3 API.

svn_error_t* svn_client_move4 ( svn_commit_info_t **  commit_info_p,
const char *  src_path,
const char *  dst_path,
svn_boolean_t  force,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Move src_path to dst_path.

src_path must be a file or directory under version control, or the URL of a versioned item in the repository.

If src_path is a repository URL:

If src_path is a working copy path:

The parent of dst_path must already exist, but if dst_path already exists, fail with SVN_ERR_ENTRY_EXISTS if dst_path is a working copy path and SVN_ERR_FS_ALREADY_EXISTS if dst_path is an URL.

ctx->log_msg_func/ctx->log_msg_baton are a callback/baton combo that this function can use to query for a commit log message when one is needed.

If ctx->notify_func2 is non-null, then for each item moved, call ctx->notify_func2 with the ctx->notify_baton2 twice, once to indicate the deletion of the moved thing, and once to indicate the addition of the new location of the thing.

### Is this really true? What about svn_wc_notify_commit_replaced()? ###

Since:
New in 1.4.

svn_error_t* svn_client_open_ra_session ( svn_ra_session_t **  session,
const char *  url,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Open an RA session rooted at url, and return it in *session.

Use the authentication baton stored in ctx for authentication. *session is allocated in pool.

Since:
New in 1.3.
Note:
This function is similar to svn_ra_open2(), but the caller avoids having to providing its own callback functions.

svn_client_proplist_item_t* svn_client_proplist_item_dup ( const svn_client_proplist_item_t item,
apr_pool_t *  pool 
)

Return a duplicate of item, allocated in pool.

No part of the new structure will be shared with item.

Since:
New in 1.3.

svn_error_t* svn_client_relocate ( const char *  dir,
const char *  from,
const char *  to,
svn_boolean_t  recurse,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Modify a working copy directory dir, changing any repository URLs that begin with from to begin with to instead, recursing into subdirectories if recurse is true.

Parameters:
dir Working copy directory
from Original URL
to New URL
recurse Whether to recurse
ctx svn_client_ctx_t
pool The pool from which to perform memory allocations

svn_error_t* svn_client_resolved ( const char *  path,
svn_boolean_t  recursive,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Remove the 'conflicted' state on a working copy path.

This will not semantically resolve conflicts; it just allows path to be committed in the future. The implementation details are opaque. If recursive is set, recurse below path, looking for conflicts to resolve.

If path is not in a state of conflict to begin with, do nothing. If path's conflict state is removed and ctx->notify_func2 is non-null, call ctx->notify_func2 with ctx->notify_baton2 and path.

svn_error_t* svn_client_revert ( const apr_array_header_t *  paths,
svn_boolean_t  recursive,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Restore the pristine version of a working copy paths, effectively undoing any local mods.

For each path in paths, if it is a directory, and recursive is true, this will be a recursive operation.

If ctx->notify_func2 is non-null, then for each item reverted, call ctx->notify_func2 with ctx->notify_baton2 and the path of the reverted item.

If an item specified for reversion is not under version control, then do not error, just invoke ctx->notify_func2 with ctx->notify_baton2, using notification code svn_wc_notify_skip.

svn_error_t* svn_client_status ( svn_revnum_t result_rev,
const char *  path,
svn_opt_revision_t revision,
svn_wc_status_func_t  status_func,
void *  status_baton,
svn_boolean_t  recurse,
svn_boolean_t  get_all,
svn_boolean_t  update,
svn_boolean_t  no_ignore,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_status2(), but with the ignore_externals parameter always set to FALSE, and taking a deprecated svn_wc_status_func_t argument, and requiring *revision to be non-const even though it is treated as constant.

Deprecated:
Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_status2 ( svn_revnum_t result_rev,
const char *  path,
const svn_opt_revision_t revision,
svn_wc_status_func2_t  status_func,
void *  status_baton,
svn_boolean_t  recurse,
svn_boolean_t  get_all,
svn_boolean_t  update,
svn_boolean_t  no_ignore,
svn_boolean_t  ignore_externals,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Given path to a working copy directory (or single file), call status_func/status_baton with a set of svn_wc_status_t * structures which describe the status of path and its children.

If ignore_externals is not set, then recurse into externals definitions (if any exist) after handling the main target. This calls the client notification function (in ctx) with the svn_wc_notify_status_external action before handling each externals definition, and with svn_wc_notify_status_completed after each.

Since:
New in 1.2.

svn_error_t* svn_client_switch ( svn_revnum_t result_rev,
const char *  path,
const char *  url,
const svn_opt_revision_t revision,
svn_boolean_t  recurse,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Switch working tree path to url at revision, authenticating with the authentication baton cached in ctx.

If result_rev is not NULL, set *result_rev to the value of the revision to which the working copy was actually switched.

Summary of purpose: this is normally used to switch a working directory over to another line of development, such as a branch or a tag. Switching an existing working directory is more efficient than checking out url from scratch.

revision must be of kind svn_opt_revision_number, svn_opt_revision_head, or svn_opt_revision_date; otherwise, return SVN_ERR_CLIENT_BAD_REVISION.

If recurse is true, and path is a directory, switch it recursively; otherwise, switch just path and its immediate entries, but not its child directories (if any).

If ctx->notify_func2 is non-null, invoke it with ctx->notify_baton2 on paths affected by the switch. Also invoke it for files may be restored from the text-base because they were removed from the working copy.

Use pool for any temporary allocation.

svn_error_t* svn_client_update ( svn_revnum_t result_rev,
const char *  path,
const svn_opt_revision_t revision,
svn_boolean_t  recurse,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Similar to svn_client_update2() except that it accepts only a single target in path, returns a single revision if result_rev is not NULL, and ignore_externals is always set to FALSE.

Deprecated:
Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_update2 ( apr_array_header_t **  result_revs,
const apr_array_header_t *  paths,
const svn_opt_revision_t revision,
svn_boolean_t  recurse,
svn_boolean_t  ignore_externals,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Update working trees paths to revision, authenticating with the authentication baton cached in ctx.

paths is an array of const char * paths to be updated. Unversioned paths that are direct children of a versioned path will cause an update that attempts to add that path, other unversioned paths are skipped. If result_revs is not NULL an array of svn_revnum_t will be returned with each element set to the revision to which revision was resolved.

revision must be of kind svn_opt_revision_number, svn_opt_revision_head, or svn_opt_revision_date. If revision does not meet these requirements, return the error SVN_ERR_CLIENT_BAD_REVISION.

The paths in paths can be from multiple working copies from multiple repositories, but even if they all come from the same repository there is no guarantee that revision represented by svn_opt_revision_head will remain the same as each path is updated.

If ignore_externals is set, don't process externals definitions as part of this operation.

If recurse is true, update directories recursively; otherwise, update just their immediate entries, but not their child directories (if any).

If ctx->notify_func2 is non-null, invoke ctx->notify_func2 with ctx->notify_baton2 for each item handled by the update, and also for files restored from text-base. If ctx->cancel_func is non-null, invoke it passing ctx->cancel_baton at various places during the update.

Use pool for any temporary allocation.

Since:
New in 1.2.

svn_error_t* svn_client_url_from_path ( const char **  url,
const char *  path_or_url,
apr_pool_t *  pool 
)

Set *url to the URL for path_or_url.

If path_or_url is already a URL, set *url to path_or_url.

If path_or_url is a versioned item, set *url to path_or_url's entry URL. If path_or_url is unversioned (has no entry), set *url to null.

svn_error_t* svn_client_uuid_from_path ( const char **  uuid,
const char *  path,
svn_wc_adm_access_t adm_access,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Return the repository uuid for working-copy path, allocated in pool.

Use adm_access to retrieve the uuid from path's entry; if not present in the entry, then call svn_client_uuid_from_url() to retrieve, using the entry's URL. ctx is required for possible repository authentication.

Note:
The only reason this function falls back on svn_client_uuid_from_url() is for compatibility purposes. Old working copies may not have uuids in the entries file.

svn_error_t* svn_client_uuid_from_url ( const char **  uuid,
const char *  url,
svn_client_ctx_t ctx,
apr_pool_t *  pool 
)

Get repository uuid for url.

Use a pool to open a temporary RA session to url, discover the repository uuid, and free the session. Return the uuid in uuid, allocated in pool. ctx is required for possible repository authentication.

const svn_version_t* svn_client_version ( void   ) 

Get libsvn_client version information.

Since:
New in 1.1.

svn_info_t* svn_info_dup ( const svn_info_t info,
apr_pool_t *  pool 
)

Return a duplicate of info, allocated in pool.

No part of the new structure will be shared with info.

Since:
New in 1.3.


Generated on Sun Sep 16 17:38:02 2007 for Subversion by  doxygen 1.5.1