# Working copy management

## Data Structures
struct | svn_wc_diff_callbacks4_t
| A callback vtable invoked by our diff-editors, as they receive diffs from the server. More...
struct | svn_wc_diff_callbacks3_t
| Similar to svn_wc_diff_callbacks4_t, but without copyfrom_path and copyfrom_revision arguments to `file_added` and `dir_added` functions. More...
struct | svn_wc_diff_callbacks2_t
| Similar to svn_wc_diff_callbacks3_t, but without the `dir_opened` and `dir_closed` functions, and without the tree_conflicted argument to the functions. More...
struct | svn_wc_diff_callbacks_t
| Similar to svn_wc_diff_callbacks2_t, but with file additions/content changes and property changes split into different functions. More...
struct | svn_wc_info_t
| This struct contains information about a working copy node. More...
struct | svn_wc_entry_callbacks2_t
| A callback vtable invoked by the generic entry-walker function. More...
struct | svn_wc_entry_callbacks_t
struct | svn_wc_revision_status_t
| A structure to report a summary of a working copy, including the mix of revisions found within it, whether any parts are switched or locally modified, and whether it is a sparse checkout. More...
## Modules
| Translation flags

| Flags for use with svn_wc_translated_file2() and svn_wc_translated_stream().
| Working copy context
| Adm access batons (deprecated)

| Locking/Opening/Closing using adm access batons.
| Name of Subversion's admin dir
| Externals
| Notification callback handling

| In many cases, the WC library will scan a working copy and make changes.
| Conflict callback functionality

| Interactive conflict handling.
| Entries and status (deprecated)

| *
| Working copy status.

| We have three functions for getting working copy status: one function for getting the status of exactly one thing, another for getting the statuses of (potentially) multiple things and a third for getting the working copy out-of-dateness with respect to the repository.
| Working copy roots
| Update and switch (update-like functionality)
| Properties
| Diffs
| Merging
| EOL conversion and keyword expansion
| Text/Prop Deltas Using an Editor
| Ignoring unversioned files and directories
| Repository locks
## Typedefs
typedef struct svn_wc_diff_callbacks4_t | svn_wc_diff_callbacks4_t
| A callback vtable invoked by our diff-editors, as they receive diffs from the server.
typedef struct svn_wc_diff_callbacks3_t | svn_wc_diff_callbacks3_t
| Similar to svn_wc_diff_callbacks4_t, but without copyfrom_path and copyfrom_revision arguments to `file_added` and `dir_added` functions.
typedef struct svn_wc_diff_callbacks2_t | svn_wc_diff_callbacks2_t
| Similar to svn_wc_diff_callbacks3_t, but without the `dir_opened` and `dir_closed` functions, and without the tree_conflicted argument to the functions.
typedef struct svn_wc_diff_callbacks_t | svn_wc_diff_callbacks_t
| Similar to svn_wc_diff_callbacks2_t, but with file additions/content changes and property changes split into different functions.
typedef struct svn_wc_info_t | svn_wc_info_t
| This struct contains information about a working copy node.
typedef struct svn_wc_entry_callbacks2_t | svn_wc_entry_callbacks2_t
| A callback vtable invoked by the generic entry-walker function.
typedef struct svn_wc_entry_callbacks_t | svn_wc_entry_callbacks_t
typedef struct svn_wc_committed_queue_t | svn_wc_committed_queue_t
| Storage type for queued post-commit data.
typedef svn_error_t *(* | svn_wc_upgrade_get_repos_info_t )(const char **repos_root, const char **repos_uuid, void *baton, const char *url, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
| Callback for retrieving a repository root for a url from upgrade.
typedef svn_error_t *(* | svn_wc_relocation_validator3_t )(void *baton, const char *uuid, const char *url, const char *root_url, apr_pool_t *pool)
| Relocation validation callback typedef.
typedef svn_error_t *(* | svn_wc_relocation_validator2_t )(void *baton, const char *uuid, const char *url, svn_boolean_t root, apr_pool_t *pool)
| Similar to svn_wc_relocation_validator3_t, but with the root argument.
typedef svn_error_t *(* | svn_wc_relocation_validator_t )(void *baton, const char *uuid, const char *url)
| Similar to svn_wc_relocation_validator2_t, but without the root and pool arguments.
typedef struct svn_wc_revision_status_t | svn_wc_revision_status_t
| A structure to report a summary of a working copy, including the mix of revisions found within it, whether any parts are switched or locally modified, and whether it is a sparse checkout.
typedef svn_error_t *(* | svn_changelist_receiver_t )(void *baton, const char *path, const char *changelist, apr_pool_t *pool)
| The callback type used by svn_client_get_changelists().
## Functions
svn_error_t * | svn_wc_locked2 (svn_boolean_t *locked_here, svn_boolean_t *locked, svn_wc_context_t *wc_ctx, const char *local_abspath, apr_pool_t *scratch_pool)
| Gets up to two booleans indicating whether a path is locked for writing.
svn_error_t * | svn_wc_locked (svn_boolean_t *locked, const char *path, apr_pool_t *pool)
| Set *locked to non-zero if path is locked, else set it to zero.
svn_error_t * | svn_wc_check_wc2 (int *wc_format, svn_wc_context_t *wc_ctx, const char *local_abspath, apr_pool_t *scratch_pool)
| Set *wc_format to local_abspath's working copy format version number if local_abspath is a valid working copy directory, else set it to 0.
svn_error_t * | svn_wc_check_wc (const char *path, int *wc_format, apr_pool_t *pool)
| Similar to svn_wc_check_wc2(), but with a relative path and no supplied working copy context.
svn_error_t * | svn_wc_has_binary_prop (svn_boolean_t *has_binary_prop, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
| Set *has_binary_prop to `TRUE` iff path has been marked with a property indicating that it is non-text (in other words, binary).
svn_error_t * | svn_wc_text_modified_p2 (svn_boolean_t *modified_p, svn_wc_context_t *wc_ctx, const char *local_abspath, svn_boolean_t force_comparison, apr_pool_t *scratch_pool)
| Set *modified_p to non-zero if local_abspath's text is modified with regard to the base revision, else set *modified_p to zero.
svn_error_t * | svn_wc_text_modified_p (svn_boolean_t *modified_p, const char *filename, svn_boolean_t force_comparison, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
| Similar to svn_wc_text_modified_p2(), but with a relative path and adm_access baton?
svn_error_t * | svn_wc_props_modified_p2 (svn_boolean_t *modified_p, svn_wc_context_t *wc_ctx, const char *local_abspath, apr_pool_t *scratch_pool)
| Set *modified_p to non-zero if path's properties are modified with regard to the base revision, else set modified_p to zero.
svn_error_t * | svn_wc_props_modified_p (svn_boolean_t *modified_p, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
| Similar to svn_wc_props_modified_p2(), but with a relative path and adm_access baton.
svn_wc_info_t * | svn_wc_info_dup (const svn_wc_info_t *info, apr_pool_t *pool)
| Return a duplicate of info, allocated in pool.
svn_error_t * | svn_wc_conflicted_p3 (svn_boolean_t *text_conflicted_p, svn_boolean_t *prop_conflicted_p, svn_boolean_t *tree_conflicted_p, svn_wc_context_t *wc_ctx, const char *local_abspath, apr_pool_t *scratch_pool)
| Given local_abspath in a dir under version control, decide if it is in a state of conflict; return the answers in *text_conflicted_p, *prop_conflicted_p, and *tree_conflicted_p.
svn_error_t * | svn_wc_conflicted_p2 (svn_boolean_t *text_conflicted_p, svn_boolean_t *prop_conflicted_p, svn_boolean_t *tree_conflicted_p, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
| Similar to svn_wc_conflicted_p3(), but with a path/adm_access parameter pair in place of a wc_ctx/local_abspath pair.
svn_error_t * | svn_wc_conflicted_p (svn_boolean_t *text_conflicted_p, svn_boolean_t *prop_conflicted_p, const char *dir_path, const svn_wc_entry_t *entry, apr_pool_t *pool)
| Given a dir_path under version control, decide if one of its entries (entry) is in a state of conflict; return the answers in text_conflicted_p and prop_conflicted_p.
svn_error_t * | svn_wc_get_ancestry (char **url, svn_revnum_t *rev, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
| Set *url and *rev to the ancestor URL and revision for path, allocating in pool.
svn_error_t * | svn_wc_walk_entries3 (const char *path, svn_wc_adm_access_t *adm_access, const svn_wc_entry_callbacks2_t *walk_callbacks, void *walk_baton, svn_depth_t depth, svn_boolean_t show_hidden, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
| A generic entry-walker.
svn_error_t * | svn_wc_walk_entries2 (const char *path, svn_wc_adm_access_t *adm_access, const svn_wc_entry_callbacks_t *walk_callbacks, void *walk_baton, svn_boolean_t show_hidden, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
| Similar to svn_wc_walk_entries3(), but without cancellation support or error handling from walk_callbacks, and with depth always set to svn_depth_infinity.
svn_error_t * | svn_wc_walk_entries (const char *path, svn_wc_adm_access_t *adm_access, const svn_wc_entry_callbacks_t *walk_callbacks, void *walk_baton, svn_boolean_t show_hidden, apr_pool_t *pool)
| Similar to svn_wc_walk_entries2(), but without cancellation support.
svn_error_t * | svn_wc_mark_missing_deleted (const char *path, svn_wc_adm_access_t *parent, apr_pool_t *pool)
| Mark missing path as 'deleted' in its parent's list of entries.
svn_error_t * | svn_wc_ensure_adm4 (svn_wc_context_t *wc_ctx, const char *local_abspath, const char *url, const char *repos_root_url, const char *repos_uuid, svn_revnum_t revision, svn_depth_t depth, apr_pool_t *scratch_pool)
| Ensure that an administrative area exists for local_abspath, so that local_abspath is a working copy subdir based on url at revision, with depth depth, and with repository UUID repos_uuid and repository root URL repos_root_url.
svn_error_t * | svn_wc_ensure_adm3 (const char *path, const char *uuid, const char *url, const char *repos, svn_revnum_t revision, svn_depth_t depth, apr_pool_t *pool)
| Similar to svn_wc_ensure_adm4(), but without the wc context parameter.
svn_error_t * | svn_wc_ensure_adm2 (const char *path, const char *uuid, const char *url, const char *repos, svn_revnum_t revision, apr_pool_t *pool)
| Similar to svn_wc_ensure_adm3(), but with depth set to svn_depth_infinity.
svn_error_t * | svn_wc_ensure_adm (const char *path, const char *uuid, const char *url, svn_revnum_t revision, apr_pool_t *pool)
| Similar to svn_wc_ensure_adm2(), but with repos set to `NULL`.
svn_error_t * | svn_wc_maybe_set_repos_root (svn_wc_adm_access_t *adm_access, const char *path, const char *repos, apr_pool_t *pool)
| Set the repository root URL of path to repos, if possible.
svn_error_t * | svn_wc_copy3 (svn_wc_context_t *wc_ctx, const char *src_abspath, const char *dst_abspath, svn_boolean_t metadata_only, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Copy src_abspath to dst_abspath, and schedule dst_abspath for addition to the repository, remembering the copy history.
svn_error_t * | svn_wc_copy2 (const char *src, svn_wc_adm_access_t *dst_parent, const char *dst_basename, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_copy3(), but takes access batons and a relative path and a basename instead of absolute paths and a working copy context.
svn_error_t * | svn_wc_copy (const char *src, svn_wc_adm_access_t *dst_parent, const char *dst_basename, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_copy2(), but takes an svn_wc_notify_func_t instead.
svn_error_t * | svn_wc_move (svn_wc_context_t *wc_ctx, const char *src_abspath, const char *dst_abspath, svn_boolean_t metadata_only, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Move src_abspath to dst_abspath, by scheduling dst_abspath for addition to the repository, remembering the history.
svn_error_t * | svn_wc_delete4 (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_boolean_t keep_local, svn_boolean_t delete_unversioned_target, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Schedule local_abspath for deletion.
svn_error_t * | svn_wc_delete3 (const char *path, svn_wc_adm_access_t *adm_access, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_boolean_t keep_local, apr_pool_t *pool)
| Similar to svn_wc_delete4, but uses an access baton and relative path instead of a working copy context and absolute path.
svn_error_t * | svn_wc_delete2 (const char *path, svn_wc_adm_access_t *adm_access, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_delete3(), but with keep_local always set to FALSE.
svn_error_t * | svn_wc_delete (const char *path, svn_wc_adm_access_t *adm_access, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_delete2(), but takes an svn_wc_notify_func_t instead.
svn_error_t * | svn_wc_add_from_disk (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Schedule the single node that exists on disk at local_abspath for addition to the working copy.
svn_error_t * | svn_wc_add4 (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_depth_t depth, const char *copyfrom_url, svn_revnum_t copyfrom_rev, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Put local_abspath under version control by registering it as addition or copy in the database containing its parent.
svn_error_t * | svn_wc_add3 (const char *path, svn_wc_adm_access_t *parent_access, svn_depth_t depth, const char *copyfrom_url, svn_revnum_t copyfrom_rev, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_add4(), but with an access baton and relative path instead of a context and absolute path.
svn_error_t * | svn_wc_add2 (const char *path, svn_wc_adm_access_t *parent_access, const char *copyfrom_url, svn_revnum_t copyfrom_rev, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_add3(), but with the depth parameter always svn_depth_infinity.
svn_error_t * | svn_wc_add (const char *path, svn_wc_adm_access_t *parent_access, const char *copyfrom_url, svn_revnum_t copyfrom_rev, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_add2(), but takes an svn_wc_notify_func_t instead.
svn_error_t * | svn_wc_add_repos_file4 (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_stream_t *new_base_contents, svn_stream_t *new_contents, apr_hash_t *new_base_props, apr_hash_t *new_props, const char *copyfrom_url, svn_revnum_t copyfrom_rev, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *scratch_pool)
| Add a file to a working copy at local_abspath, obtaining the text-base's contents from new_base_contents, the wc file's content from new_contents, its unmodified properties from new_base_props and its actual properties from new_props.
svn_error_t * | svn_wc_add_repos_file3 (const char *dst_path, svn_wc_adm_access_t *adm_access, svn_stream_t *new_base_contents, svn_stream_t *new_contents, apr_hash_t *new_base_props, apr_hash_t *new_props, const char *copyfrom_url, svn_revnum_t copyfrom_rev, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Similar to svn_wc_add_repos_file4, but uses access batons and a relative path instead of a working copy context and absolute path.
svn_error_t * | svn_wc_add_repos_file2 (const char *dst_path, svn_wc_adm_access_t *adm_access, const char *new_text_base_path, const char *new_text_path, apr_hash_t *new_base_props, apr_hash_t *new_props, const char *copyfrom_url, svn_revnum_t copyfrom_rev, apr_pool_t *pool)
| Same as svn_wc_add_repos_file3(), except that it has pathnames rather than streams for the text base, and actual text, and has no cancellation.
svn_error_t * | svn_wc_add_repos_file (const char *dst_path, svn_wc_adm_access_t *adm_access, const char *new_text_path, apr_hash_t *new_props, const char *copyfrom_url, svn_revnum_t copyfrom_rev, apr_pool_t *pool)
| Same as svn_wc_add_repos_file3(), except that it doesn't have the BASE arguments or cancellation.
svn_error_t * | svn_wc_remove_from_revision_control2 (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_boolean_t destroy_wf, svn_boolean_t instant_error, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
| Remove local_abspath from revision control.
svn_error_t * | svn_wc_remove_from_revision_control (svn_wc_adm_access_t *adm_access, const char *name, svn_boolean_t destroy_wf, svn_boolean_t instant_error, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
| Similar to svn_wc_remove_from_revision_control2() but with a name and access baton.
svn_error_t * | svn_wc_resolved_conflict5 (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_depth_t depth, svn_boolean_t resolve_text, const char *resolve_prop, svn_boolean_t resolve_tree, svn_wc_conflict_choice_t conflict_choice, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Assuming local_abspath is under version control or a tree conflict victim and in a state of conflict, then take local_abspath *out* of this state.
svn_error_t * | svn_wc_resolved_conflict4 (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t resolve_text, svn_boolean_t resolve_props, svn_boolean_t resolve_tree, svn_depth_t depth, svn_wc_conflict_choice_t conflict_choice, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
| Similar to svn_wc_resolved_conflict5, but takes an absolute path and an access baton.
svn_error_t * | svn_wc_resolved_conflict3 (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t resolve_text, svn_boolean_t resolve_props, svn_depth_t depth, svn_wc_conflict_choice_t conflict_choice, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
| Similar to svn_wc_resolved_conflict4(), but without tree-conflict resolution support.
svn_error_t * | svn_wc_resolved_conflict2 (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t resolve_text, svn_boolean_t resolve_props, svn_boolean_t recurse, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
| Similar to svn_wc_resolved_conflict3(), but without automatic conflict resolution support, and with depth set according to recurse: if recurse is TRUE, depth is svn_depth_infinity, else it is svn_depth_files.
svn_error_t * | svn_wc_resolved_conflict (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t resolve_text, svn_boolean_t resolve_props, svn_boolean_t recurse, svn_wc_notify_func_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_resolved_conflict2(), but takes an svn_wc_notify_func_t and doesn't have cancellation support.
svn_wc_committed_queue_t * | svn_wc_committed_queue_create (apr_pool_t *pool)
| Create a queue for use with svn_wc_queue_committed() and svn_wc_process_committed_queue().
svn_error_t * | svn_wc_queue_committed3 (svn_wc_committed_queue_t *queue, svn_wc_context_t *wc_ctx, const char *local_abspath, svn_boolean_t recurse, const apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, svn_boolean_t remove_changelist, const svn_checksum_t *sha1_checksum, apr_pool_t *scratch_pool)
| Queue committed items to be processed later by svn_wc_process_committed_queue2().
svn_error_t * | svn_wc_queue_committed2 (svn_wc_committed_queue_t *queue, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, const apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, svn_boolean_t remove_changelist, const svn_checksum_t *md5_checksum, apr_pool_t *scratch_pool)
| Same as svn_wc_queue_committed3() except path doesn't have to be an abspath and adm_access is unused and a SHA-1 checksum cannot be specified.
svn_error_t * | svn_wc_queue_committed (svn_wc_committed_queue_t **queue, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, const apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, svn_boolean_t remove_changelist, const unsigned char *digest, apr_pool_t *pool)
| Same as svn_wc_queue_committed2() but the queue parameter has an extra indirection and digest is supplied instead of a checksum type.
svn_error_t * | svn_wc_process_committed_queue2 (svn_wc_committed_queue_t *queue, svn_wc_context_t *wc_ctx, svn_revnum_t new_revnum, const char *rev_date, const char *rev_author, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *scratch_pool)
| Bump all items in queue to new_revnum after a commit succeeds.
svn_error_t * | svn_wc_process_committed_queue (svn_wc_committed_queue_t *queue, svn_wc_adm_access_t *adm_access, svn_revnum_t new_revnum, const char *rev_date, const char *rev_author, apr_pool_t *pool)
svn_error_t * | svn_wc_process_committed4 (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, svn_revnum_t new_revnum, const char *rev_date, const char *rev_author, const apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, svn_boolean_t remove_changelist, const unsigned char *digest, apr_pool_t *pool)
svn_error_t * | svn_wc_process_committed3 (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, svn_revnum_t new_revnum, const char *rev_date, const char *rev_author, const apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, const unsigned char *digest, apr_pool_t *pool)
svn_error_t * | svn_wc_process_committed2 (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, svn_revnum_t new_revnum, const char *rev_date, const char *rev_author, const apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, apr_pool_t *pool)
svn_error_t * | svn_wc_process_committed (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, svn_revnum_t new_revnum, const char *rev_date, const char *rev_author, const apr_array_header_t *wcprop_changes, apr_pool_t *pool)
svn_error_t * | svn_wc_crawl_revisions5 (svn_wc_context_t *wc_ctx, const char *local_abspath, const svn_ra_reporter3_t *reporter, void *report_baton, svn_boolean_t restore_files, svn_depth_t depth, svn_boolean_t honor_depth_exclude, svn_boolean_t depth_compatibility_trick, svn_boolean_t use_commit_times, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Do a depth-first crawl in a working copy, beginning at local_abspath, using wc_ctx for accessing the working copy.
svn_error_t * | svn_wc_crawl_revisions4 (const char *path, svn_wc_adm_access_t *adm_access, const svn_ra_reporter3_t *reporter, void *report_baton, svn_boolean_t restore_files, svn_depth_t depth, svn_boolean_t honor_depth_exclude, svn_boolean_t depth_compatibility_trick, svn_boolean_t use_commit_times, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_wc_traversal_info_t *traversal_info, apr_pool_t *pool)
| Similar to svn_wc_crawl_revisions5, but with a relative path and access baton instead of an absolute path and wc_ctx.
svn_error_t * | svn_wc_crawl_revisions3 (const char *path, svn_wc_adm_access_t *adm_access, const svn_ra_reporter3_t *reporter, void *report_baton, svn_boolean_t restore_files, svn_depth_t depth, svn_boolean_t depth_compatibility_trick, svn_boolean_t use_commit_times, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_wc_traversal_info_t *traversal_info, apr_pool_t *pool)
| Similar to svn_wc_crawl_revisions4, but with honor_depth_exclude always set to false.
svn_error_t * | svn_wc_crawl_revisions2 (const char *path, svn_wc_adm_access_t *adm_access, const svn_ra_reporter2_t *reporter, void *report_baton, svn_boolean_t restore_files, svn_boolean_t recurse, svn_boolean_t use_commit_times, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_wc_traversal_info_t *traversal_info, apr_pool_t *pool)
| Similar to svn_wc_crawl_revisions3, but taking svn_ra_reporter2_t instead of svn_ra_reporter3_t, and therefore only able to report svn_depth_infinity for depths; and taking recurse instead of depth; and with depth_compatibility_trick always false.
svn_error_t * | svn_wc_crawl_revisions (const char *path, svn_wc_adm_access_t *adm_access, const svn_ra_reporter_t *reporter, void *report_baton, svn_boolean_t restore_files, svn_boolean_t recurse, svn_boolean_t use_commit_times, svn_wc_notify_func_t notify_func, void *notify_baton, svn_wc_traversal_info_t *traversal_info, apr_pool_t *pool)
| Similar to svn_wc_crawl_revisions2(), but takes an svn_wc_notify_func_t and a svn_ra_reporter_t instead.
svn_error_t * | svn_wc_get_actual_target2 (const char **anchor, const char **target, svn_wc_context_t *wc_ctx, const char *path, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
| Conditionally split path into an anchor and target for the purpose of updating and committing.
svn_error_t * | svn_wc_get_actual_target (const char *path, const char **anchor, const char **target, apr_pool_t *pool)
| Similar to svn_wc_get_actual_target2(), but without the wc context, and with a absolute path.
svn_error_t * | svn_wc_get_pristine_contents2 (svn_stream_t **contents, svn_wc_context_t *wc_ctx, const char *local_abspath, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
| Given a path to a wc file, return in *contents a readonly stream to the pristine contents of the file that would serve as base content for the next commit.
svn_error_t * | svn_wc_get_pristine_contents (svn_stream_t **contents, const char *path, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
| Similar to svn_wc_get_pristine_contents2, but takes no working copy context and a path that can be relative.
svn_error_t * | svn_wc_get_pristine_copy_path (const char *path, const char **pristine_path, apr_pool_t *pool)
| Set *pristine_path to the path of the "normal" pristine text file for the versioned file path.
svn_error_t * | svn_wc_cleanup3 (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *scratch_pool)
| Recurse from local_abspath, cleaning up unfinished log business.
svn_error_t * | svn_wc_cleanup2 (const char *path, const char *diff3_cmd, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
| Similar to svn_wc_cleanup3() but uses relative paths and creates its own swn_wc_context_t.
svn_error_t * | svn_wc_cleanup (const char *path, svn_wc_adm_access_t *optional_adm_access, const char *diff3_cmd, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
| Similar to svn_wc_cleanup2().
svn_error_t * | svn_wc_upgrade (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_wc_upgrade_get_repos_info_t repos_info_func, void *repos_info_baton, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Upgrade the working copy at local_abspath to the latest metadata storage format.
svn_error_t * | svn_wc_relocate4 (svn_wc_context_t *wc_ctx, const char *wcroot_abspath, const char *from, const char *to, svn_wc_relocation_validator3_t validator, void *validator_baton, apr_pool_t *scratch_pool)
| Recursively change repository references at wcroot_abspath (which is the root directory of a working copy).
svn_error_t * | svn_wc_relocate3 (const char *path, svn_wc_adm_access_t *adm_access, const char *from, const char *to, svn_boolean_t recurse, svn_wc_relocation_validator3_t validator, void *validator_baton, apr_pool_t *pool)
| Similar to svn_wc_relocate4(), but with a svn_wc_adm_access_t / relative path parameter pair.
svn_error_t * | svn_wc_relocate2 (const char *path, svn_wc_adm_access_t *adm_access, const char *from, const char *to, svn_boolean_t recurse, svn_wc_relocation_validator2_t validator, void *validator_baton, apr_pool_t *pool)
| Similar to svn_wc_relocate3(), but uses svn_wc_relocation_validator2_t.
svn_error_t * | svn_wc_relocate (const char *path, svn_wc_adm_access_t *adm_access, const char *from, const char *to, svn_boolean_t recurse, svn_wc_relocation_validator_t validator, void *validator_baton, apr_pool_t *pool)
| Similar to svn_wc_relocate2(), but uses svn_wc_relocation_validator_t.
svn_error_t * | svn_wc_revert4 (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_depth_t depth, svn_boolean_t use_commit_times, const apr_array_header_t *changelist_filter, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Revert changes to local_abspath.
svn_error_t * | svn_wc_revert3 (const char *path, svn_wc_adm_access_t *parent_access, svn_depth_t depth, svn_boolean_t use_commit_times, const apr_array_header_t *changelist_filter, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_revert4() but takes a relative path and access baton.
svn_error_t * | svn_wc_revert2 (const char *path, svn_wc_adm_access_t *parent_access, svn_boolean_t recursive, svn_boolean_t use_commit_times, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_revert3(), but with changelist_filter passed as `NULL`, and depth set according to recursive: if recursive is TRUE, depth is svn_depth_infinity; if FALSE, depth is svn_depth_empty.
svn_error_t * | svn_wc_revert (const char *path, svn_wc_adm_access_t *parent_access, svn_boolean_t recursive, svn_boolean_t use_commit_times, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_revert2(), but takes an svn_wc_notify_func_t instead.
svn_error_t * | svn_wc_restore (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_boolean_t use_commit_times, apr_pool_t *scratch_pool)
| Restores a missing node, local_abspath using the wc_ctx.
svn_error_t * | svn_wc_create_tmp_file2 (apr_file_t **fp, const char **new_name, const char *path, svn_io_file_del_t delete_when, apr_pool_t *pool)
| Create a unique temporary file in administrative tmp/ area of directory path.
svn_error_t * | svn_wc_create_tmp_file (apr_file_t **fp, const char *path, svn_boolean_t delete_on_close, apr_pool_t *pool)
| Same as svn_wc_create_tmp_file2(), but with new_name set to `NULL`, and without the ability to delete the file on pool cleanup.
svn_error_t * | svn_wc_revision_status2 (svn_wc_revision_status_t **result_p, svn_wc_context_t *wc_ctx, const char *local_abspath, const char *trail_url, svn_boolean_t committed, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
| Set *result_p to point to a new svn_wc_revision_status_t structure containing a summary of the revision range and status of the working copy at local_abspath (not including "externals").
svn_error_t * | svn_wc_revision_status (svn_wc_revision_status_t **result_p, const char *wc_path, const char *trail_url, svn_boolean_t committed, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
| Similar to svn_wc_revision_status2(), but with a (possibly) local path and no wc_ctx parameter.
svn_error_t * | svn_wc_set_changelist2 (svn_wc_context_t *wc_ctx, const char *local_abspath, const char *changelist, svn_depth_t depth, const apr_array_header_t *changelist_filter, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Set local_abspath's 'changelist' attribute to changelist iff changelist is not `NULL`; otherwise, remove any current changelist assignment from local_abspath.
svn_error_t * | svn_wc_set_changelist (const char *path, const char *changelist, svn_wc_adm_access_t *adm_access, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool)
| Similar to svn_wc_set_changelist2(), but with an access baton and relative path.
svn_error_t * | svn_wc_get_changelists (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_depth_t depth, const apr_array_header_t *changelist_filter, svn_changelist_receiver_t callback_func, void *callback_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *scratch_pool)
svn_error_t * | svn_wc_crop_tree2 (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_depth_t depth, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Crop local_abspath according to depth.
svn_error_t * | svn_wc_crop_tree (svn_wc_adm_access_t *anchor, const char *target, svn_depth_t depth, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
| Similar to svn_wc_crop_tree2(), but uses an access baton and target.
svn_error_t * | svn_wc_exclude (svn_wc_context_t *wc_ctx, const char *local_abspath, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool)
| Remove the local node for local_abspath from the working copy and add an excluded node placeholder in its place.

## Typedef Documentation

typedef svn_error_t*(* svn_changelist_receiver_t)(void *baton, const char *path, const char *changelist, apr_pool_t *pool)

The callback type used by svn_client_get_changelists().

On each invocation, path is a newly discovered member of the changelist, and baton is a private function closure.

Since:
  New in 1.5.

Definition at line 7689 of file svn_wc.h.

typedef struct svn_wc_committed_queue_t svn_wc_committed_queue_t

Storage type for queued post-commit data.

Since:
  New in 1.5.

Definition at line 4877 of file svn_wc.h.

typedef struct svn_wc_diff_callbacks2_t svn_wc_diff_callbacks2_t

Similar to svn_wc_diff_callbacks3_t, but without the `dir_opened` and `dir_closed` functions, and without the tree_conflicted argument to the functions.

Deprecated:
  Provided for backward compatibility with the 1.2 API.

typedef struct svn_wc_diff_callbacks3_t svn_wc_diff_callbacks3_t

Similar to svn_wc_diff_callbacks4_t, but without copyfrom_path and copyfrom_revision arguments to `file_added` and `dir_added` functions.

Since:
  New in 1.6.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

typedef struct svn_wc_diff_callbacks4_t svn_wc_diff_callbacks4_t

A callback vtable invoked by our diff-editors, as they receive diffs from the server.

'svn diff' and 'svn merge' implement their own versions of this vtable.

Common parameters:

If state is non-NULL, set *state to the state of the item after the operation has been performed. (In practice, this is only useful with merge, not diff; diff callbacks will probably set *state to svn_wc_notify_state_unknown, since they do not change the state and therefore do not bother to know the state after the operation.) By default, state refers to the item's content state. Functions concerned with property state have separate contentstate and propstate arguments.

If tree_conflicted is non-NULL, set *tree_conflicted to true if this operation caused a tree conflict, else to false. (Like with state, this is only useful with merge, not diff; diff callbacks should set this to false.)

Since:
  New in 1.7.

typedef struct svn_wc_diff_callbacks_t svn_wc_diff_callbacks_t

Similar to svn_wc_diff_callbacks2_t, but with file additions/content changes and property changes split into different functions.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

typedef struct svn_wc_entry_callbacks2_t svn_wc_entry_callbacks2_t

A callback vtable invoked by the generic entry-walker function.

Since:
  New in 1.5.

typedef struct svn_wc_entry_callbacks_t svn_wc_entry_callbacks_t

Deprecated:
  Provided for backward compatibility with the 1.4 API.

typedef struct svn_wc_info_t svn_wc_info_t

This struct contains information about a working copy node.

Note:
  Fields may be added to the end of this structure in future versions. Therefore, users shouldn't allocate structures of this type, to preserve binary compatibility.

Since:
  New in 1.7.

typedef svn_error_t*(* svn_wc_relocation_validator2_t)(void *baton, const char *uuid, const char *url, svn_boolean_t root, apr_pool_t *pool)

Similar to svn_wc_relocation_validator3_t, but with the root argument.

If root is TRUE, then the implementation should make sure that url is the repository root. Else, it can be an URL inside the repository.

Deprecated:
  Provided for backwards compatibility with the 1.4 API.

Definition at line 6946 of file svn_wc.h.

typedef svn_error_t*(* svn_wc_relocation_validator3_t)(void *baton, const char *uuid, const char *url, const char *root_url, apr_pool_t *pool)

Relocation validation callback typedef.

Called for each relocated file/directory. uuid, if non-NULL, contains the expected repository UUID, url contains the tentative URL.

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

If root_url is passed, then the implementation should make sure that url is the repository root. pool may be used for temporary allocations.

Since:
  New in 1.5.

Definition at line 6932 of file svn_wc.h.

typedef svn_error_t*(* svn_wc_relocation_validator_t)(void *baton, const char *uuid, const char *url)

Similar to svn_wc_relocation_validator2_t, but without the root and pool arguments.

uuid will not be NULL in this version of the function.

Deprecated:
  Provided for backwards compatibility with the 1.3 API.

Definition at line 6958 of file svn_wc.h.

typedef struct svn_wc_revision_status_t svn_wc_revision_status_t

A structure to report a summary of a working copy, including the mix of revisions found within it, whether any parts are switched or locally modified, and whether it is a sparse checkout.

Note:
  Fields may be added to the end of this structure in future versions. Therefore, to preserve binary compatibility, users should not directly allocate structures of this type.

Since:
  New in 1.4

typedef svn_error_t*(* svn_wc_upgrade_get_repos_info_t)(const char **repos_root, const char **repos_uuid, void *baton, const char *url, apr_pool_t *result_pool, apr_pool_t *scratch_pool)

Callback for retrieving a repository root for a url from upgrade.

Called by svn_wc_upgrade() when no repository root and/or repository uuid are recorded in the working copy. For normal Subversion 1.5 and later working copies, this callback will not be used.

Since:
  New in 1.7.

Definition at line 6877 of file svn_wc.h.

## Function Documentation

svn_error_t* svn_wc_add | ( | const char * | path,
|  | svn_wc_adm_access_t * | parent_access,
|  | const char * | copyfrom_url,
|  | svn_revnum_t | copyfrom_rev,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_add2(), but takes an svn_wc_notify_func_t instead.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_wc_add2 | ( | const char * | path,
|  | svn_wc_adm_access_t * | parent_access,
|  | const char * | copyfrom_url,
|  | svn_revnum_t | copyfrom_rev,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_add3(), but with the depth parameter always svn_depth_infinity.

Since:
  New in 1.2.

Deprecated:
  Provided for backward compatibility with the 1.5 API.

svn_error_t* svn_wc_add3 | ( | const char * | path,
|  | svn_wc_adm_access_t * | parent_access,
|  | svn_depth_t | depth,
|  | const char * | copyfrom_url,
|  | svn_revnum_t | copyfrom_rev,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_add4(), but with an access baton and relative path instead of a context and absolute path.

Since:
  New in 1.6.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_add4 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_depth_t | depth,
|  | const char * | copyfrom_url,
|  | svn_revnum_t | copyfrom_rev,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Put local_abspath under version control by registering it as addition or copy in the database containing its parent.

The new node is scheduled for addition to the repository below its parent node.

1) If the node is already versioned, it MUST BE the root of a separate working copy from the same repository as the parent WC. The new node and anything below it will be scheduled for addition inside the parent working copy as a copy of the original location. The separate working copy will be integrated by this step. In this case, which is only used by code like that of "svn cp URL@rev path" copyfrom_url and copyfrom_rev MUST BE the the url and revision of local_abspath in the separate working copy.

2a) If the node was not versioned before it will be scheduled as a local addition or 2b) if copyfrom_url and copyfrom_rev are set as a copy of that location. In this last case the function doesn't set the pristine version (of a file) and/or pristine properties, which callers should handle via different APIs. Usually it is easier to call svn_wc_add_repos_file4() (### or a possible svn_wc_add_repos_dir()) than using this variant.

If local_abspath does not exist as file, directory or symlink, return SVN_ERR_WC_PATH_NOT_FOUND.

If local_abspath is an unversioned directory, record depth on it; otherwise, ignore depth. (Use svn_depth_infinity unless you exactly know what you are doing, or you may create an unexpected sparse working copy)

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

When the local_abspath has been added, then notify_func will be called (if it is not `NULL`) with the notify_baton and the path.

Note:
  Case 1 is deprecated. Consider doing a WC-to-WC copy instead.
  For case 2a, prefer svn_wc_add_from_disk().

Since:
  New in 1.7.

svn_error_t* svn_wc_add_from_disk | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Schedule the single node that exists on disk at local_abspath for addition to the working copy.

The added node will have no properties.

The versioned state of the parent path must be a modifiable directory, and the versioned state of local_abspath must be either nonexistent or deleted; if deleted, the new node will be a replacement.

If local_abspath does not exist as file, directory or symlink, return SVN_ERR_WC_PATH_NOT_FOUND.

This is a replacement for svn_wc_add4() case 2a.

### TODO: Allow the caller to provide the node's properties?

### TODO: Split into add_dir, add_file, add_symlink?

Since:
  New in 1.7.

svn_error_t* svn_wc_add_repos_file | ( | const char * | dst_path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const char * | new_text_path,
|  | apr_hash_t * | new_props,
|  | const char * | copyfrom_url,
|  | svn_revnum_t | copyfrom_rev,
|  | apr_pool_t * | pool |
| ) |  |  |

Same as svn_wc_add_repos_file3(), except that it doesn't have the BASE arguments or cancellation.

Deprecated:
  Provided for compatibility with the 1.3 API

svn_error_t* svn_wc_add_repos_file2 | ( | const char * | dst_path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const char * | new_text_base_path,
|  | const char * | new_text_path,
|  | apr_hash_t * | new_base_props,
|  | apr_hash_t * | new_props,
|  | const char * | copyfrom_url,
|  | svn_revnum_t | copyfrom_rev,
|  | apr_pool_t * | pool |
| ) |  |  |

Same as svn_wc_add_repos_file3(), except that it has pathnames rather than streams for the text base, and actual text, and has no cancellation.

Since:
  New in 1.4.

Deprecated:
  Provided for compatibility with the 1.5 API

svn_error_t* svn_wc_add_repos_file3 | ( | const char * | dst_path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_stream_t * | new_base_contents,
|  | svn_stream_t * | new_contents,
|  | apr_hash_t * | new_base_props,
|  | apr_hash_t * | new_props,
|  | const char * | copyfrom_url,
|  | svn_revnum_t | copyfrom_rev,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Similar to svn_wc_add_repos_file4, but uses access batons and a relative path instead of a working copy context and absolute path.

### NOTE: the notification callback/baton is not yet used.

Since:
  New in 1.6.

Deprecated:
  Provided for compatibility with the 1.6 API.

svn_error_t* svn_wc_add_repos_file4 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_stream_t * | new_base_contents,
|  | svn_stream_t * | new_contents,
|  | apr_hash_t * | new_base_props,
|  | apr_hash_t * | new_props,
|  | const char * | copyfrom_url,
|  | svn_revnum_t | copyfrom_rev,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Add a file to a working copy at local_abspath, obtaining the text-base's contents from new_base_contents, the wc file's content from new_contents, its unmodified properties from new_base_props and its actual properties from new_props.

Use wc_ctx for accessing the working copy.

The unmodified text and props normally come from the repository file represented by the copyfrom args, see below. The new file will be marked as copy.

new_contents and new_props may be NULL, in which case the working copy text and props are taken from the base files with appropriate translation of the file's content.

new_contents must be provided in Normal Form. This is required in order to pass both special and non-special files through a stream.

wc_ctx must contain a write lock for the parent of local_abspath.

If copyfrom_url is non-NULL, then copyfrom_rev must be a valid revision number, and together they are the copyfrom history for the new file.

The cancel_func and cancel_baton are a standard cancellation callback, or NULL if no callback is needed. notify_func and notify_baton are a notification callback, and (if not NULL) will be notified of the addition of this file.

Use scratch_pool for temporary allocations.

### This function is very redundant with svn_wc_add(). Ideally, we'd merge them, so that svn_wc_add() would just take optional new_props and optional copyfrom information. That way it could be used for both 'svn add somefilesittingonmydisk' and for adding files from repositories, with or without copyfrom history.

The problem with this Ideal Plan is that svn_wc_add() also takes care of recursive URL-rewriting. There's a whole comment in its doc string about how that's really weird, outside its core mission, etc, etc. So another part of the Ideal Plan is that that functionality of svn_wc_add() would move into a separate function.

Since:
  New in 1.7.

svn_error_t* svn_wc_check_wc | ( | const char * | path,
|  | int * | wc_format,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_check_wc2(), but with a relative path and no supplied working copy context.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_check_wc2 | ( | int * | wc_format,
|  | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Set *wc_format to local_abspath's working copy format version number if local_abspath is a valid working copy directory, else set it to 0.

Return error `APR_ENOENT` if local_abspath does not exist at all.

Since:
  New in 1.7.

svn_error_t* svn_wc_cleanup | ( | const char * | path,
|  | svn_wc_adm_access_t * | optional_adm_access,
|  | const char * | diff3_cmd,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_cleanup2().

optional_adm_access is an historic relic and not used, it may be NULL.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_wc_cleanup2 | ( | const char * | path,
|  | const char * | diff3_cmd,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_cleanup3() but uses relative paths and creates its own swn_wc_context_t.

Since:
  New in 1.2.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_cleanup3 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Recurse from local_abspath, cleaning up unfinished log business.

Perform any temporary allocations in scratch_pool. Any working copy locks under local_abspath will be taken over and then cleared by this function.

WARNING: there is no mechanism that will protect locks that are still being used.

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

Since:
  New in 1.7.

svn_wc_committed_queue_t* svn_wc_committed_queue_create | ( | apr_pool_t * | pool | ) |

Create a queue for use with svn_wc_queue_committed() and svn_wc_process_committed_queue().

The returned queue and all further allocations required for queuing new items will also be done from pool.

Since:
  New in 1.5.

svn_error_t* svn_wc_conflicted_p | ( | svn_boolean_t * | text_conflicted_p,
|  | svn_boolean_t * | prop_conflicted_p,
|  | const char * | dir_path,
|  | const svn_wc_entry_t * | entry,
|  | apr_pool_t * | pool |
| ) |  |  |

Given a dir_path under version control, decide if one of its entries (entry) is in a state of conflict; return the answers in text_conflicted_p and prop_conflicted_p.

These pointers must not be null.

If the entry mentions that text conflict files (with suffix .mine, .theirs, etc.) exist, but they cannot be found, assume the text conflict has been resolved by the user and return FALSE in *text_conflicted_p.

Similarly, if the entry mentions that a property conflicts file (.prej suffix) exists, but it cannot be found, assume the property conflicts have been resolved by the user and return FALSE in *prop_conflicted_p.

The entry is not updated.

Deprecated:
  Provided for backward compatibility with the 1.5 API.

svn_error_t* svn_wc_conflicted_p2 | ( | svn_boolean_t * | text_conflicted_p,
|  | svn_boolean_t * | prop_conflicted_p,
|  | svn_boolean_t * | tree_conflicted_p,
|  | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_conflicted_p3(), but with a path/adm_access parameter pair in place of a wc_ctx/local_abspath pair.

Since:
  New in 1.6.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_conflicted_p3 | ( | svn_boolean_t * | text_conflicted_p,
|  | svn_boolean_t * | prop_conflicted_p,
|  | svn_boolean_t * | tree_conflicted_p,
|  | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Given local_abspath in a dir under version control, decide if it is in a state of conflict; return the answers in *text_conflicted_p, *prop_conflicted_p, and *tree_conflicted_p.

If one or two of the answers are uninteresting, simply pass `NULL` pointers for those.

If local_abspath is unversioned or does not exist, return SVN_ERR_WC_PATH_NOT_FOUND.

If the local_abspath has corresponding text conflict files (with suffix .mine, .theirs, etc.) that cannot be found, assume that the text conflict has been resolved by the user and return `FALSE` in *text_conflicted_p.

Similarly, if a property conflicts file (.prej suffix) is said to exist, but it cannot be found, assume that the property conflicts have been resolved by the user and return `FALSE` in *prop_conflicted_p.

*tree_conflicted_p can't be auto-resolved in this fashion. An explicit `resolved' is needed.

Since:
  New in 1.7.

svn_error_t* svn_wc_copy | ( | const char * | src,
|  | svn_wc_adm_access_t * | dst_parent,
|  | const char * | dst_basename,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_copy2(), but takes an svn_wc_notify_func_t instead.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_wc_copy2 | ( | const char * | src,
|  | svn_wc_adm_access_t * | dst_parent,
|  | const char * | dst_basename,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_copy3(), but takes access batons and a relative path and a basename instead of absolute paths and a working copy context.

Since:
  New in 1.2.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_copy3 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | src_abspath,
|  | const char * | dst_abspath,
|  | svn_boolean_t | metadata_only,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Copy src_abspath to dst_abspath, and schedule dst_abspath for addition to the repository, remembering the copy history.

wc_ctx is used for accessing the working copy and must contain a write lock for the parent directory of dst_abspath,

If metadata_only is TRUE then this is a database-only operation and the working directories and files are not copied.

src_abspath must be a file or directory under version control; the parent of dst_abspath must be a directory under version control in the same working copy; dst_abspath will be the name of the copied item, and it must not exist already if metadata_only is FALSE. Note that when src points to a versioned file, the working file doesn't necessarily exist in which case its text-base is used instead.

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

If notify_func is non-NULL, call it with notify_baton and the path of the root node (only) of the destination.

Use scratch_pool for temporary allocations.

Since:
  New in 1.7.

svn_error_t* svn_wc_crawl_revisions | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const svn_ra_reporter_t * | reporter,
|  | void * | report_baton,
|  | svn_boolean_t | restore_files,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | use_commit_times,
|  | svn_wc_notify_func_t | notify_func,
|  | void * | notify_baton,
|  | svn_wc_traversal_info_t * | traversal_info,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_crawl_revisions2(), but takes an svn_wc_notify_func_t and a svn_ra_reporter_t instead.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_wc_crawl_revisions2 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const svn_ra_reporter2_t * | reporter,
|  | void * | report_baton,
|  | svn_boolean_t | restore_files,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | use_commit_times,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | svn_wc_traversal_info_t * | traversal_info,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_crawl_revisions3, but taking svn_ra_reporter2_t instead of svn_ra_reporter3_t, and therefore only able to report svn_depth_infinity for depths; and taking recurse instead of depth; and with depth_compatibility_trick always false.

Deprecated:
  Provided for compatibility with the 1.4 API.

svn_error_t* svn_wc_crawl_revisions3 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const svn_ra_reporter3_t * | reporter,
|  | void * | report_baton,
|  | svn_boolean_t | restore_files,
|  | svn_depth_t | depth,
|  | svn_boolean_t | depth_compatibility_trick,
|  | svn_boolean_t | use_commit_times,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | svn_wc_traversal_info_t * | traversal_info,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_crawl_revisions4, but with honor_depth_exclude always set to false.

Deprecated:
  Provided for compatibility with the 1.5 API.

svn_error_t* svn_wc_crawl_revisions4 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const svn_ra_reporter3_t * | reporter,
|  | void * | report_baton,
|  | svn_boolean_t | restore_files,
|  | svn_depth_t | depth,
|  | svn_boolean_t | honor_depth_exclude,
|  | svn_boolean_t | depth_compatibility_trick,
|  | svn_boolean_t | use_commit_times,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | svn_wc_traversal_info_t * | traversal_info,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_crawl_revisions5, but with a relative path and access baton instead of an absolute path and wc_ctx.

Passes NULL for cancel_func and cancel_baton.

Since:
  New in 1.6.

Deprecated:
  Provided for compatibility with the 1.6 API.

svn_error_t* svn_wc_crawl_revisions5 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | const svn_ra_reporter3_t * | reporter,
|  | void * | report_baton,
|  | svn_boolean_t | restore_files,
|  | svn_depth_t | depth,
|  | svn_boolean_t | honor_depth_exclude,
|  | svn_boolean_t | depth_compatibility_trick,
|  | svn_boolean_t | use_commit_times,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Do a depth-first crawl in a working copy, beginning at local_abspath, using wc_ctx for accessing the working copy.

Communicate the `state' of the working copy's revisions and depths to reporter/report_baton. Obviously, if local_abspath is a file instead of a directory, this depth-first crawl will be a short one.

No locks or logs are created, nor are any animals harmed in the process unless restore_files is TRUE. No cleanup is necessary.

After all revisions are reported, reporter->finish_report() is called, which immediately causes the RA layer to update the working copy. Thus the return value may very well reflect the result of the update!

If depth is svn_depth_empty, then report state only for path itself. If svn_depth_files, do the same and include immediate file children of path. If svn_depth_immediates, then behave as if for svn_depth_files but also report the property states of immediate subdirectories. If depth is svn_depth_infinity, then report state fully recursively. All descents are only as deep as path's own depth permits, of course. If depth is svn_depth_unknown, then just use svn_depth_infinity, which in practice means depth of path.

Iff honor_depth_exclude is TRUE, the crawler will report paths whose ambient depth is svn_depth_exclude as being excluded, and thus prevent the server from pushing update data for those paths; therefore, don't set this flag if you wish to pull in excluded paths. Note that svn_depth_exclude on the target path is never honored, even if honor_depth_exclude is TRUE, because we need to be able to explicitly pull in a target. For example, if this is the working copy...

svn co greek_tree_repos wc_dir svn up --set-depth exclude wc_dir/A/B/E # now A/B/E is excluded

...then 'svn up wc_dir/A/B' would report E as excluded (assuming honor_depth_exclude is TRUE), but 'svn up wc_dir/A/B/E' would not, because the latter is trying to explicitly pull in E. In general, we never report the update target as excluded.

Iff depth_compatibility_trick is TRUE, then set the `start_empty` flag on reporter->set_path() and reporter->link_path() calls as necessary to trick a pre-1.5 (i.e., depth-unaware) server into sending back all the items the client might need to upgrade a working copy from a shallower depth to a deeper one.

If restore_files is TRUE, then unexpectedly missing working files will be restored from the administrative directory's cache. For each file restored, the notify_func function will be called with the notify_baton and the path of the restored file. notify_func may be `NULL` if this notification is not required. If use_commit_times is TRUE, then set restored files' timestamps to their last-commit-times.

Since:
  New in 1.7.

svn_error_t* svn_wc_create_tmp_file | ( | apr_file_t ** | fp,
|  | const char * | path,
|  | svn_boolean_t | delete_on_close,
|  | apr_pool_t * | pool |
| ) |  |  |

Same as svn_wc_create_tmp_file2(), but with new_name set to `NULL`, and without the ability to delete the file on pool cleanup.

Deprecated:
  For compatibility with 1.3 API

svn_error_t* svn_wc_create_tmp_file2 | ( | apr_file_t ** | fp,
|  | const char ** | new_name,
|  | const char * | path,
|  | svn_io_file_del_t | delete_when,
|  | apr_pool_t * | pool |
| ) |  |  |

Create a unique temporary file in administrative tmp/ area of directory path.

Return a handle in *fp and the path in *new_name. Either fp or new_name can be NULL.

The flags will be `APR_WRITE | APR_CREATE | APR_EXCL` and optionally `APR_DELONCLOSE` (if the delete_when argument is set to svn_io_file_del_on_close).

This means that as soon as fp is closed, the tmp file will vanish.

Since:
  New in 1.4

Deprecated:
  For compatibility with 1.6 API

svn_error_t* svn_wc_crop_tree | ( | svn_wc_adm_access_t * | anchor,
|  | const char * | target,
|  | svn_depth_t | depth,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_crop_tree2(), but uses an access baton and target.

svn_wc_crop_tree() also allows svn_depth_exclude, which is now handled via svn_wc_exclude()

target is a basename in anchor or "" for anchor itself.

Since:
  New in 1.6

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_crop_tree2 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_depth_t | depth,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Crop local_abspath according to depth.

Remove any item that exceeds the boundary of depth (relative to local_abspath) from revision control. Leave modified items behind (unversioned), while removing unmodified ones completely.

depth can be svn_depth_empty, svn_depth_files or svn_depth_immediates. Excluding nodes is handled by svn_wc_exclude().

If local_abspath starts out with a shallower depth than depth, do not upgrade it to depth (that would not be cropping); however, do check children and crop them appropriately according to depth.

Returns immediately with an SVN_ERR_UNSUPPORTED_FEATURE error if local_abspath is not a directory, or if depth is not restrictive (e.g., svn_depth_infinity).

wc_ctx contains a tree lock, for the local path to the working copy which will be used as the root of this operation.

If cancel_func is not `NULL`, call it with cancel_baton at various points to determine if the client has canceled the operation.

If notify_func is not `NULL`, call it with notify_baton to report changes as they are made.

Since:
  New in 1.7

svn_error_t* svn_wc_delete | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_delete2(), but takes an svn_wc_notify_func_t instead.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_wc_delete2 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_delete3(), but with keep_local always set to FALSE.

Deprecated:
  Provided for backward compatibility with the 1.4 API.

svn_error_t* svn_wc_delete3 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | svn_boolean_t | keep_local,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_delete4, but uses an access baton and relative path instead of a working copy context and absolute path.

adm_access must hold a write lock for the parent of path.

`delete_unversioned_target` will always be set to TRUE.

Since:
  New in 1.5.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_delete4 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_boolean_t | keep_local,
|  | svn_boolean_t | delete_unversioned_target,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Schedule local_abspath for deletion.

It will be deleted from the repository on the next commit. If local_abspath refers to a directory, then a recursive deletion will occur. wc_ctx must hold a write lock for the parent of local_abspath, local_abspath itself and everything below local_abspath.

If keep_local is FALSE, this function immediately deletes all files, modified and unmodified, versioned and of delete_unversioned is TRUE, unversioned from the working copy. It also immediately deletes unversioned directories and directories that are scheduled to be added below local_abspath. Only versioned may remain in the working copy, these get deleted by the update following the commit.

If keep_local is TRUE, all files and directories will be kept in the working copy (and will become unversioned on the next commit).

If delete_unversioned_target is TRUE and local_abspath is not versioned, local_abspath will be handled as an added files without history. So it will be deleted if keep_local is FALSE. If delete_unversioned is FALSE and local_abspath is not versioned a SVN_ERR_WC_PATH_NOT_FOUND error will be returned.

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

For each path marked for deletion, notify_func will be called with the notify_baton and that path. The notify_func callback may be `NULL` if notification is not needed.

Use scratch_pool for temporary allocations. It may be cleared immediately upon returning from this function.

Since:
  New in 1.7.

svn_error_t* svn_wc_ensure_adm | ( | const char * | path,
|  | const char * | uuid,
|  | const char * | url,
|  | svn_revnum_t | revision,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_ensure_adm2(), but with repos set to `NULL`.

Note:
  as of 1.7, this function always returns SVN_ERR_BAD_URL since the repos parameter may not be `NULL`.

Deprecated:
  Provided for backwards compatibility with the 1.2 API.

svn_error_t* svn_wc_ensure_adm2 | ( | const char * | path,
|  | const char * | uuid,
|  | const char * | url,
|  | const char * | repos,
|  | svn_revnum_t | revision,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_ensure_adm3(), but with depth set to svn_depth_infinity.

See the note on svn_wc_ensure_adm3() regarding the repos and uuid parameters.

Since:
  New in 1.3.

Deprecated:
  Provided for backwards compatibility with the 1.4 API.

svn_error_t* svn_wc_ensure_adm3 | ( | const char * | path,
|  | const char * | uuid,
|  | const char * | url,
|  | const char * | repos,
|  | svn_revnum_t | revision,
|  | svn_depth_t | depth,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_ensure_adm4(), but without the wc context parameter.

Note:
  the uuid and repos parameters were documented as allowing `NULL` to be passed. Beginning with 1.7, this will return an error, contrary to prior documented behavior: see 'notes/api-errata/1.7/wc005.txt'.

Since:
  New in 1.5.

Deprecated:
  Provided for backwards compatibility with the 1.6 API.

svn_error_t* svn_wc_ensure_adm4 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | const char * | url,
|  | const char * | repos_root_url,
|  | const char * | repos_uuid,
|  | svn_revnum_t | revision,
|  | svn_depth_t | depth,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Ensure that an administrative area exists for local_abspath, so that local_abspath is a working copy subdir based on url at revision, with depth depth, and with repository UUID repos_uuid and repository root URL repos_root_url.

depth must be a definite depth, it cannot be svn_depth_unknown. repos_uuid and repos_root_url MUST NOT be `NULL`, and repos_root_url must be a prefix of url.

If the administrative area does not exist, then create it and initialize it to an unlocked state.

If the administrative area already exists then the given url must match the URL in the administrative area and the given revision must match the BASE of the working copy dir unless the admin directory is scheduled for deletion or the SVN_ERR_WC_OBSTRUCTED_UPDATE error will be returned.

Do not ensure existence of local_abspath itself; if local_abspath does not exist, return error.

Use scratch_pool for temporary allocations.

Since:
  New in 1.7.

svn_error_t* svn_wc_exclude | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Remove the local node for local_abspath from the working copy and add an excluded node placeholder in its place.

This feature is only supported for unmodified nodes. An SVN_ERR_UNSUPPORTED_FEATURE error is returned if the node can't be excluded in its current state.

wc_ctx contains a tree lock, for the local path to the working copy which will be used as the root of this operation

If notify_func is not `NULL`, call it with notify_baton to report changes as they are made.

If cancel_func is not `NULL`, call it with cancel_baton at various points to determine if the client has canceled the operation.

Since:
  New in 1.7

svn_error_t* svn_wc_get_actual_target | ( | const char * | path,
|  | const char ** | anchor,
|  | const char ** | target,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_get_actual_target2(), but without the wc context, and with a absolute path.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_get_actual_target2 | ( | const char ** | anchor,
|  | const char ** | target,
|  | svn_wc_context_t * | wc_ctx,
|  | const char * | path,
|  | apr_pool_t * | result_pool,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Conditionally split path into an anchor and target for the purpose of updating and committing.

anchor is the directory at which the update or commit editor should be rooted.

target is the actual subject (relative to the anchor) of the update/commit, or "" if the anchor itself is the subject.

Allocate anchor and target in result_pool; scratch_pool is used for temporary allocations.

Note:
  Even though this API uses a svn_wc_context_t, it accepts a (possibly) relative path and returns a (possibly) relative path in *anchor. The reason being that the outputs are generally used to open access batons, and such opening currently requires relative paths. In the long-run, I expect this API to be removed from 1.7, due to the remove of access batons, but for the time being, the svn_wc_context_t parameter allows us to avoid opening a duplicate database, just for this function.

Since:
  New in 1.7.

svn_error_t* svn_wc_get_ancestry | ( | char ** | url,
|  | svn_revnum_t * | rev,
|  | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | apr_pool_t * | pool |
| ) |  |  |

Set *url and *rev to the ancestor URL and revision for path, allocating in pool.

adm_access must be an access baton for path.

If url or rev is NULL, then ignore it (just don't return the corresponding information).

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_get_pristine_contents | ( | svn_stream_t ** | contents,
|  | const char * | path,
|  | apr_pool_t * | result_pool,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Similar to svn_wc_get_pristine_contents2, but takes no working copy context and a path that can be relative.

Since:
  New in 1.6.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_get_pristine_contents2 | ( | svn_stream_t ** | contents,
|  | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | apr_pool_t * | result_pool,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Given a path to a wc file, return in *contents a readonly stream to the pristine contents of the file that would serve as base content for the next commit.

That means:

When there is no change in node history scheduled, i.e. when there are only local text-mods, prop-mods or a delete, return the last checked-out or updated-/switched-to contents of the file.

If the file is simply added or replaced (no copy-/move-here involved), set *contents to `NULL`.

When the file has been locally copied-/moved-here, return the contents of the copy/move source (even if the copy-/move-here replaces a locally deleted file).

If local_abspath refers to an unversioned or non-existing path, return `SVN_ERR_WC_PATH_NOT_FOUND`. Use wc_ctx to access the working copy. contents may not be `NULL` (unlike *contents).

Since:
  New in 1.7.

svn_error_t* svn_wc_get_pristine_copy_path | ( | const char * | path,
|  | const char ** | pristine_path,
|  | apr_pool_t * | pool |
| ) |  |  |

Set *pristine_path to the path of the "normal" pristine text file for the versioned file path.

If path does not have a pristine text, set *pristine_path to a path where nothing exists on disk (in a directory that does exist).

Note:
  : Before version 1.7, the behaviour in that case was to provide the path where the pristine text *would be* if it were present. The new behaviour is intended to provide backward compatibility for callers that open or test the provided path immediately, and not for callers that store the path for later use.

Deprecated:
  Provided for backwards compatibility with the 1.5 API. Callers should use svn_wc_get_pristine_contents() instead.

svn_error_t* svn_wc_has_binary_prop | ( | svn_boolean_t * | has_binary_prop,
|  | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | apr_pool_t * | pool |
| ) |  |  |

Set *has_binary_prop to `TRUE` iff path has been marked with a property indicating that it is non-text (in other words, binary).

adm_access is an access baton set that contains path.

Deprecated:
  Provided for backward compatibility with the 1.6 API. As a replacement for this functionality,

See also:
  svn_mime_type_is_binary and SVN_PROP_MIME_TYPE.

svn_wc_info_t* svn_wc_info_dup | ( | const svn_wc_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.7.

svn_error_t* svn_wc_locked | ( | svn_boolean_t * | locked,
|  | const char * | path,
|  | apr_pool_t * | pool |
| ) |  |  |

Set *locked to non-zero if path is locked, else set it to zero.

New code should use svn_wc_locked2() instead.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_locked2 | ( | svn_boolean_t * | locked_here,
|  | svn_boolean_t * | locked,
|  | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Gets up to two booleans indicating whether a path is locked for writing.

locked_here is set to TRUE when a write lock on local_abspath exists in wc_ctx. locked is set to TRUE when there is a write_lock on local_abspath

locked_here and/or locked can be NULL when you are not interested in a specific value

Since:
  New in 1.7.

svn_error_t* svn_wc_mark_missing_deleted | ( | const char * | path,
|  | svn_wc_adm_access_t * | parent,
|  | apr_pool_t * | pool |
| ) |  |  |

Mark missing path as 'deleted' in its parent's list of entries.

path should be a directory that is both deleted (via svn_wc_delete4) and removed (via a system call). This function should only be called during post-commit processing following a successful commit editor drive.

Return SVN_ERR_WC_PATH_FOUND if path isn't actually missing.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_maybe_set_repos_root | ( | svn_wc_adm_access_t * | adm_access,
|  | const char * | path,
|  | const char * | repos,
|  | apr_pool_t * | pool |
| ) |  |  |

Set the repository root URL of path to repos, if possible.

Before Subversion 1.7 there could be working copy directories that didn't have a stored repository root in some specific circumstances. This function allowed setting this root later.

Since Subversion 1.7 this function just returns SVN_NO_ERROR.

Since:
  New in 1.3.

Deprecated:
  Provided for backwards compatibility with the 1.6 API.

svn_error_t* svn_wc_move | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | src_abspath,
|  | const char * | dst_abspath,
|  | svn_boolean_t | metadata_only,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Move src_abspath to dst_abspath, by scheduling dst_abspath for addition to the repository, remembering the history.

Mark src_abspath as deleted after moving.wc_ctx is used for accessing the working copy and must contain a write lock for the parent directory of src_abspath and dst_abspath.

If metadata_only is TRUE then this is a database-only operation and the working directories and files are not changed.

src_abspath must be a file or directory under version control; the parent of dst_abspath must be a directory under version control in the same working copy; dst_abspath will be the name of the copied item, and it must not exist already if metadata_only is FALSE. Note that when src points to a versioned file, the working file doesn't necessarily exist in which case its text-base is used instead.

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

If notify_func is non-NULL, call it with notify_baton and the path of the root node (only) of the destination.

Use scratch_pool for temporary allocations.

Since:
  New in 1.7.

svn_error_t* svn_wc_process_committed | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_boolean_t | recurse,
|  | svn_revnum_t | new_revnum,
|  | const char * | rev_date,
|  | const char * | rev_author,
|  | const apr_array_header_t * | wcprop_changes,
|  | apr_pool_t * | pool |
| ) |  |  |

See also:
  svn_wc_process_committed4()

Deprecated:
  Use the svn_wc_committed_queue_* functions instead. Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_wc_process_committed2 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_boolean_t | recurse,
|  | svn_revnum_t | new_revnum,
|  | const char * | rev_date,
|  | const char * | rev_author,
|  | const apr_array_header_t * | wcprop_changes,
|  | svn_boolean_t | remove_lock,
|  | apr_pool_t * | pool |
| ) |  |  |

See also:
  svn_wc_process_committed4()

Deprecated:
  Use the svn_wc_committed_queue_* functions instead. Provided for backwards compatibility with the 1.3 API.

svn_error_t* svn_wc_process_committed3 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_boolean_t | recurse,
|  | svn_revnum_t | new_revnum,
|  | const char * | rev_date,
|  | const char * | rev_author,
|  | const apr_array_header_t * | wcprop_changes,
|  | svn_boolean_t | remove_lock,
|  | const unsigned char * | digest,
|  | apr_pool_t * | pool |
| ) |  |  |

See also:
  svn_wc_process_committed4()

Deprecated:
  Use the svn_wc_committed_queue_* functions instead. Provided for backwards compatibility with the 1.4 API.

svn_error_t* svn_wc_process_committed4 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_boolean_t | recurse,
|  | svn_revnum_t | new_revnum,
|  | const char * | rev_date,
|  | const char * | rev_author,
|  | const apr_array_header_t * | wcprop_changes,
|  | svn_boolean_t | remove_lock,
|  | svn_boolean_t | remove_changelist,
|  | const unsigned char * | digest,
|  | apr_pool_t * | pool |
| ) |  |  |

Note:
  this function has improper expectations around the operation and execution of other parts of the Subversion WC library. The resulting coupling makes this interface near-impossible to support. Documentation has been removed, as a result.

Deprecated:
  Use the svn_wc_committed_queue_* functions instead. Provided for backwards compatibility with the 1.5 API.

svn_error_t* svn_wc_process_committed_queue | ( | svn_wc_committed_queue_t * | queue,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_revnum_t | new_revnum,
|  | const char * | rev_date,
|  | const char * | rev_author,
|  | apr_pool_t * | pool |
| ) |  |  |

See also:
  svn_wc_process_committed_queue2()

Since:
  New in 1.5.

Deprecated:
  Provided for backwards compatibility with the 1.6 API.

svn_error_t* svn_wc_process_committed_queue2 | ( | svn_wc_committed_queue_t * | queue,
|  | svn_wc_context_t * | wc_ctx,
|  | svn_revnum_t | new_revnum,
|  | const char * | rev_date,
|  | const char * | rev_author,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Bump all items in queue to new_revnum after a commit succeeds.

rev_date and rev_author are the (server-side) date and author of the new revision; one or both may be `NULL`.

If cancel_func is non-NULL, call it with cancel_baton to determine if the client wants to cancel the operation.

Since:
  New in 1.7.

svn_error_t* svn_wc_props_modified_p | ( | svn_boolean_t * | modified_p,
|  | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_props_modified_p2(), but with a relative path and adm_access baton.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_props_modified_p2 | ( | svn_boolean_t * | modified_p,
|  | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Set *modified_p to non-zero if path's properties are modified with regard to the base revision, else set modified_p to zero.

adm_access must be an access baton for path.

Since:
  New in 1.7.

svn_error_t* svn_wc_queue_committed | ( | svn_wc_committed_queue_t ** | queue,
|  | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_boolean_t | recurse,
|  | const apr_array_header_t * | wcprop_changes,
|  | svn_boolean_t | remove_lock,
|  | svn_boolean_t | remove_changelist,
|  | const unsigned char * | digest,
|  | apr_pool_t * | pool |
| ) |  |  |

Same as svn_wc_queue_committed2() but the queue parameter has an extra indirection and digest is supplied instead of a checksum type.

Note:
  despite the extra indirection, this function does NOT allocate the queue for you. svn_wc_committed_queue_create() must be called.

Since:
  New in 1.5

Deprecated:
  Provided for backwards compatibility with 1.5

svn_error_t* svn_wc_queue_committed2 | ( | svn_wc_committed_queue_t * | queue,
|  | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_boolean_t | recurse,
|  | const apr_array_header_t * | wcprop_changes,
|  | svn_boolean_t | remove_lock,
|  | svn_boolean_t | remove_changelist,
|  | const svn_checksum_t * | md5_checksum,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Same as svn_wc_queue_committed3() except path doesn't have to be an abspath and adm_access is unused and a SHA-1 checksum cannot be specified.

Since:
  New in 1.6.

Deprecated:
  Provided for backwards compatibility with the 1.6 API.

svn_error_t* svn_wc_queue_committed3 | ( | svn_wc_committed_queue_t * | queue,
|  | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_boolean_t | recurse,
|  | const apr_array_header_t * | wcprop_changes,
|  | svn_boolean_t | remove_lock,
|  | svn_boolean_t | remove_changelist,
|  | const svn_checksum_t * | sha1_checksum,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Queue committed items to be processed later by svn_wc_process_committed_queue2().

Record in queue that local_abspath will need to be bumped after a commit succeeds.

If non-NULL, wcprop_changes is an array of `svn_prop_t *` changes to wc properties; if an svn_prop_t->value is NULL, then that property is deleted. ### [JAF] No, a prop whose value is NULL is ignored, not deleted. This ### seems to be not a set of changes but rather the new complete set of ### props. And it's renamed to 'new_dav_cache' inside; why?

If remove_lock is `TRUE`, any entryprops related to a repository lock will be removed.

If remove_changelist is `TRUE`, any association with a changelist will be removed.

If sha1_checksum is non-NULL, use it to identify the node's pristine text.

If recurse is TRUE and local_abspath is a directory, then bump every versioned object at or under local_abspath. This is usually done for copied trees.

### In the present implementation, if a recursive directory item is in the queue, then any children (at any depth) of that directory that are also in the queue as separate items will get: 'wcprop_changes' = NULL; 'remove_lock' = FALSE; 'remove_changelist' from the recursive parent item; and any children (at any depth) of that directory that are NOT in the queue as separate items will get: 'wcprop_changes' = NULL; 'remove_lock' = FALSE; 'remove_changelist' from the recursive parent item;

Note:
  the recurse parameter should be used with extreme care since it will bump ALL nodes under the directory, regardless of their actual inclusion in the new revision.

All pointer data passed to this function (local_abspath, wcprop_changes and the checksums) should remain valid until the queue has been processed by svn_wc_process_committed_queue2().

Temporary allocations will be performed in scratch_pool, and persistent allocations will use the same pool as queue used when it was created.

Since:
  New in 1.7.

svn_error_t* svn_wc_relocate | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const char * | from,
|  | const char * | to,
|  | svn_boolean_t | recurse,
|  | svn_wc_relocation_validator_t | validator,
|  | void * | validator_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_relocate2(), but uses svn_wc_relocation_validator_t.

Deprecated:
  Provided for backwards compatibility with the 1.3 API.

svn_error_t* svn_wc_relocate2 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const char * | from,
|  | const char * | to,
|  | svn_boolean_t | recurse,
|  | svn_wc_relocation_validator2_t | validator,
|  | void * | validator_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_relocate3(), but uses svn_wc_relocation_validator2_t.

Since:
  New in 1.4.

Deprecated:
  Provided for backwards compatibility with the 1.4 API.

svn_error_t* svn_wc_relocate3 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const char * | from,
|  | const char * | to,
|  | svn_boolean_t | recurse,
|  | svn_wc_relocation_validator3_t | validator,
|  | void * | validator_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_relocate4(), but with a svn_wc_adm_access_t / relative path parameter pair.

Note:
  As of the 1.7 API, path is required to be a working copy root directory, and recurse is required to be TRUE.

Since:
  New in 1.5.

Deprecated:
  Provided for limited backwards compatibility with the 1.6 API.

svn_error_t* svn_wc_relocate4 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | wcroot_abspath,
|  | const char * | from,
|  | const char * | to,
|  | svn_wc_relocation_validator3_t | validator,
|  | void * | validator_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Recursively change repository references at wcroot_abspath (which is the root directory of a working copy).

The pre-change URL should begin with from, and the post-change URL will begin with to. validator (and its baton, validator_baton), will be called for the newly generated base URL and calculated repo root.

wc_ctx is an working copy context.

scratch_pool will be used for temporary allocations.

Since:
  New in 1.7.

svn_error_t* svn_wc_remove_from_revision_control | ( | svn_wc_adm_access_t * | adm_access,
|  | const char * | name,
|  | svn_boolean_t | destroy_wf,
|  | svn_boolean_t | instant_error,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_remove_from_revision_control2() but with a name and access baton.

WARNING: This routine was exported for careful, measured use by libsvn_client. Do *not* call this routine unless you really understand what the heck you're doing.

Deprecated:
  Provided for compatibility with the 1.6 API

svn_error_t* svn_wc_remove_from_revision_control2 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_boolean_t | destroy_wf,
|  | svn_boolean_t | instant_error,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Remove local_abspath from revision control.

wc_ctx must hold a write lock.

If local_abspath is a file, all its info will be removed from the administrative area. If local_abspath is a directory, then the administrative area will be deleted, along with *all* the administrative areas anywhere in the tree below adm_access.

Normally, only administrative data is removed. However, if destroy_wf is TRUE, then all working file(s) and dirs are deleted from disk as well. When called with destroy_wf, any locally modified files will *not* be deleted, and the special error SVN_ERR_WC_LEFT_LOCAL_MOD might be returned. (Callers only need to check for this special return value if destroy_wf is TRUE.)

If instant_error is TRUE, then return SVN_ERR_WC_LEFT_LOCAL_MOD the instant a locally modified file is encountered. Otherwise, leave locally modified files in place and return the error only after all the recursion is complete.

If cancel_func is non-NULL, call it with cancel_baton at various points during the removal. If it returns an error (typically SVN_ERR_CANCELLED), return that error immediately.

WARNING: This routine is exported for careful, measured use by libsvn_client. Do *not* call this routine unless you really understand what the heck you're doing.

Since:
  New in 1.7.

svn_error_t* svn_wc_resolved_conflict | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_boolean_t | resolve_text,
|  | svn_boolean_t | resolve_props,
|  | svn_boolean_t | recurse,
|  | svn_wc_notify_func_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_resolved_conflict2(), but takes an svn_wc_notify_func_t and doesn't have cancellation support.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_wc_resolved_conflict2 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_boolean_t | resolve_text,
|  | svn_boolean_t | resolve_props,
|  | svn_boolean_t | recurse,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_resolved_conflict3(), but without automatic conflict resolution support, and with depth set according to recurse: if recurse is TRUE, depth is svn_depth_infinity, else it is svn_depth_files.

Since:
  New in 1.2.

Deprecated:
  Provided for backward compatibility with the 1.4 API.

svn_error_t* svn_wc_resolved_conflict3 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_boolean_t | resolve_text,
|  | svn_boolean_t | resolve_props,
|  | svn_depth_t | depth,
|  | svn_wc_conflict_choice_t | conflict_choice,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_resolved_conflict4(), but without tree-conflict resolution support.

Since:
  New in 1.5.

Deprecated:
  Provided for backward compatibility with the 1.5 API.

svn_error_t* svn_wc_resolved_conflict4 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_boolean_t | resolve_text,
|  | svn_boolean_t | resolve_props,
|  | svn_boolean_t | resolve_tree,
|  | svn_depth_t | depth,
|  | svn_wc_conflict_choice_t | conflict_choice,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_resolved_conflict5, but takes an absolute path and an access baton.

This version doesn't support resolving a specific property.conflict.

Since:
  New in 1.6.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_resolved_conflict5 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_depth_t | depth,
|  | svn_boolean_t | resolve_text,
|  | const char * | resolve_prop,
|  | svn_boolean_t | resolve_tree,
|  | svn_wc_conflict_choice_t | conflict_choice,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Assuming local_abspath is under version control or a tree conflict victim and in a state of conflict, then take local_abspath *out* of this state.

If resolve_text is TRUE then any text conflict is resolved, if resolve_tree is TRUE then any tree conflicts are resolved. If resolve_prop is set to "" all property conflicts are resolved, if it is set to any other string value, conflicts on that specific property are resolved and when resolve_prop is NULL, no property conflicts are resolved.

If depth is svn_depth_empty, act only on local_abspath; if svn_depth_files, resolve local_abspath and its conflicted file children (if any); if svn_depth_immediates, resolve local_abspath and all its immediate conflicted children (both files and directories, if any); if svn_depth_infinity, resolve local_abspath and every conflicted file or directory anywhere beneath it.

If conflict_choice is svn_wc_conflict_choose_base, resolve the conflict with the old file contents; if svn_wc_conflict_choose_mine_full, use the original working contents; if svn_wc_conflict_choose_theirs_full, the new contents; and if svn_wc_conflict_choose_merged, don't change the contents at all, just remove the conflict status, which is the pre-1.5 behavior.

svn_wc_conflict_choose_theirs_conflict and svn_wc_conflict_choose_mine_conflict are not legal for binary files or properties.

wc_ctx is a working copy context, with a write lock, for local_abspath.

Needless to say, this function doesn't touch conflict markers or anything of that sort -- only a human can semantically resolve a conflict. Instead, this function simply marks a file as "having been resolved", clearing the way for a commit.

The implementation details are opaque, as our "conflicted" criteria might change over time. (At the moment, this routine removes the three fulltext 'backup' files and any .prej file created in a conflict, and modifies local_abspath's entry.)

If local_abspath is not under version control and not a tree conflict, return SVN_ERR_ENTRY_NOT_FOUND. If path isn't in a state of conflict to begin with, do nothing, and return SVN_NO_ERROR.

If `local_abspath` was successfully taken out of a state of conflict, report this information to `notify_func` (if non-`NULL`.) If only text, only property, or only tree conflict resolution was requested, and it was successful, then success gets reported.

Temporary allocations will be performed in scratch_pool.

Since:
  New in 1.7.

svn_error_t* svn_wc_restore | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_boolean_t | use_commit_times,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Restores a missing node, local_abspath using the wc_ctx.

Records the new last modified time of the file for status processing.

If use_commit_times is TRUE, then set restored files' timestamps to their last-commit-times.

Returns SVN_ERROR_WC_PATH_NOT_FOUND if LOCAL_ABSPATH is not versioned and SVN_ERROR_WC_PATH_UNEXPECTED_STATUS if LOCAL_ABSPATH is in a status where it can't be restored.

Since:
  New in 1.7.

svn_error_t* svn_wc_revert | ( | const char * | path,
|  | svn_wc_adm_access_t * | parent_access,
|  | svn_boolean_t | recursive,
|  | svn_boolean_t | use_commit_times,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_revert2(), but takes an svn_wc_notify_func_t instead.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_wc_revert2 | ( | const char * | path,
|  | svn_wc_adm_access_t * | parent_access,
|  | svn_boolean_t | recursive,
|  | svn_boolean_t | use_commit_times,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_revert3(), but with changelist_filter passed as `NULL`, and depth set according to recursive: if recursive is TRUE, depth is svn_depth_infinity; if FALSE, depth is svn_depth_empty.

Note:
  Most APIs map recurse==FALSE to depth==svn_depth_files; revert is deliberately different.

Since:
  New in 1.2.

Deprecated:
  Provided for backward compatibility with the 1.4 API.

svn_error_t* svn_wc_revert3 | ( | const char * | path,
|  | svn_wc_adm_access_t * | parent_access,
|  | svn_depth_t | depth,
|  | svn_boolean_t | use_commit_times,
|  | const apr_array_header_t * | changelist_filter,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_revert4() but takes a relative path and access baton.

Since:
  New in 1.5.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_revert4 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_depth_t | depth,
|  | svn_boolean_t | use_commit_times,
|  | const apr_array_header_t * | changelist_filter,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Revert changes to local_abspath.

Perform necessary allocations in scratch_pool.

wc_ctx contains the necessary locks required for performing the operation.

If depth is svn_depth_empty, revert just path (if a directory, then revert just the properties on that directory). Else if svn_depth_files, revert path and any files directly under path if it is directory. Else if svn_depth_immediates, revert all of the preceding plus properties on immediate subdirectories; else if svn_depth_infinity, revert path and everything under it fully recursively.

changelist_filter is an array of `const char *` changelist names, used as a restrictive filter on items reverted; that is, don't revert any item unless it's a member of one of those changelists. If changelist_filter is empty (or altogether `NULL`), no changelist filtering occurs.

If cancel_func is non-NULL, call it with cancel_baton at various points during the reversion process. If it returns an error (typically SVN_ERR_CANCELLED), return that error immediately.

If use_commit_times is TRUE, then all reverted working-files will have their timestamp set to the last-committed-time. If FALSE, the reverted working-files will be touched with the 'now' time.

For each item reverted, notify_func will be called with notify_baton and the path of the reverted item. notify_func may be `NULL` if this notification is not needed.

If path is not under version control, return the error SVN_ERR_UNVERSIONED_RESOURCE.

Since:
  New in 1.7.

svn_error_t* svn_wc_revision_status | ( | svn_wc_revision_status_t ** | result_p,
|  | const char * | wc_path,
|  | const char * | trail_url,
|  | svn_boolean_t | committed,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_revision_status2(), but with a (possibly) local path and no wc_ctx parameter.

Since:
  New in 1.4.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_revision_status2 | ( | svn_wc_revision_status_t ** | result_p,
|  | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | const char * | trail_url,
|  | svn_boolean_t | committed,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | result_pool,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Set *result_p to point to a new svn_wc_revision_status_t structure containing a summary of the revision range and status of the working copy at local_abspath (not including "externals").

local_abspath must be absolute. Return SVN_ERR_WC_PATH_NOT_FOUND if local_abspath is not a working copy path.

Set (*result_p)->min_rev and (*result_p)->max_rev respectively to the lowest and highest revision numbers in the working copy. If committed is TRUE, summarize the last-changed revisions, else the base revisions.

Set (*result_p)->switched to indicate whether any item in the WC is switched relative to its parent. If trail_url is non-NULL, use it to determine if local_abspath itself is switched. It should be any trailing portion of local_abspath's expected URL, long enough to include any parts that the caller considers might be changed by a switch. If it does not match the end of local_abspath's actual URL, then report a "switched" status.

Set (*result_p)->modified to indicate whether any item is locally modified.

If cancel_func is non-NULL, call it with cancel_baton to determine if the client has canceled the operation.

Allocate *result_p in result_pool, use scratch_pool for temporary allocations.

wc_ctx should be a valid working copy context.

Since:
  New in 1.7

svn_error_t* svn_wc_set_changelist | ( | const char * | path,
|  | const char * | changelist,
|  | svn_wc_adm_access_t * | adm_access,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_set_changelist2(), but with an access baton and relative path.

Since:
  New in 1.5.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_set_changelist2 | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | const char * | changelist,
|  | svn_depth_t | depth,
|  | const apr_array_header_t * | changelist_filter,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Set local_abspath's 'changelist' attribute to changelist iff changelist is not `NULL`; otherwise, remove any current changelist assignment from local_abspath.

changelist may not be the empty string. Recurse to depth.

changelist_filter is an array of `const char *` changelist names, used as a restrictive filter on items whose changelist assignments are adjusted; that is, don't tweak the changeset of any item unless it's currently a member of one of those changelists. If changelist_filter is empty (or altogether `NULL`), no changelist filtering occurs.

If cancel_func is not `NULL`, call it with cancel_baton to determine if the client has canceled the operation.

If notify_func is not `NULL`, call it with notify_baton to report the change (using notification types svn_wc_notify_changelist_set and svn_wc_notify_changelist_clear).

Use scratch_pool for temporary allocations.

Note:
  For now, directories are NOT allowed to be associated with changelists; there is confusion about whether they should behave as depth-0 or depth-infinity objects. If local_abspath is a directory, return an error.
  This metadata is purely a client-side "bookkeeping" convenience, and is entirely managed by the working copy.

Since:
  New in 1.7.

svn_error_t* svn_wc_text_modified_p | ( | svn_boolean_t * | modified_p,
|  | const char * | filename,
|  | svn_boolean_t | force_comparison,
|  | svn_wc_adm_access_t * | adm_access,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_text_modified_p2(), but with a relative path and adm_access baton?

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_wc_text_modified_p2 | ( | svn_boolean_t * | modified_p,
|  | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_boolean_t | force_comparison,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Set *modified_p to non-zero if local_abspath's text is modified with regard to the base revision, else set *modified_p to zero.

local_abspath is the absolute path to the file.

If force_comparison is `TRUE`, this function will not allow early return mechanisms that avoid actual content comparison. Instead, if there is a text base, a full byte-by-byte comparison will be done, and the entry checksum verified as well. (This means that if the text base is much longer than the working file, every byte of the text base will still be examined.)

If local_abspath does not exist, consider it unmodified. If it exists but is not under revision control (not even scheduled for addition), return the error SVN_ERR_ENTRY_NOT_FOUND.

Since:
  New in 1.7.

svn_error_t* svn_wc_upgrade | ( | svn_wc_context_t * | wc_ctx,
|  | const char * | local_abspath,
|  | svn_wc_upgrade_get_repos_info_t | repos_info_func,
|  | void * | repos_info_baton,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | svn_wc_notify_func2_t | notify_func,
|  | void * | notify_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Upgrade the working copy at local_abspath to the latest metadata storage format.

local_abspath should be an absolute path to the root of the working copy.

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

For each directory converted, notify_func will be called with in notify_baton action svn_wc_notify_upgrade_path and as path the path of the upgraded directory. notify_func may be `NULL` if this notification is not needed.

If the old working copy doesn't contain a repository root and/or repository uuid, repos_info_func (if non-NULL) will be called with repos_info_baton to provide the missing information.

Since:
  New in 1.7.

svn_error_t* svn_wc_walk_entries | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const svn_wc_entry_callbacks_t * | walk_callbacks,
|  | void * | walk_baton,
|  | svn_boolean_t | show_hidden,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_walk_entries2(), but without cancellation support.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_wc_walk_entries2 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const svn_wc_entry_callbacks_t * | walk_callbacks,
|  | void * | walk_baton,
|  | svn_boolean_t | show_hidden,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_wc_walk_entries3(), but without cancellation support or error handling from walk_callbacks, and with depth always set to svn_depth_infinity.

Since:
  New in 1.2.

Deprecated:
  Provided for backward compatibility with the 1.4 API.

svn_error_t* svn_wc_walk_entries3 | ( | const char * | path,
|  | svn_wc_adm_access_t * | adm_access,
|  | const svn_wc_entry_callbacks2_t * | walk_callbacks,
|  | void * | walk_baton,
|  | svn_depth_t | depth,
|  | svn_boolean_t | show_hidden,
|  | svn_cancel_func_t | cancel_func,
|  | void * | cancel_baton,
|  | apr_pool_t * | pool |
| ) |  |  |

A generic entry-walker.

Do a potentially recursive depth-first entry-walk beginning on path, which can be a file or dir. Call callbacks in walk_callbacks, passing walk_baton to each. Use pool for looping, recursion, and to allocate all entries returned. adm_access must be an access baton for path. The pool passed to walk_callbacks is a temporary subpool of pool.

If depth is svn_depth_empty, invoke the callbacks on path and return without recursing further. If svn_depth_files, do the same and invoke the callbacks on file children (if any) of path, then return. If svn_depth_immediates, do the preceding but also invoke callbacks on immediate subdirectories, then return. If svn_depth_infinity, recurse fully starting from path.

If cancel_func is non-NULL, call it with cancel_baton to determine if the client has canceled the operation.

Like our other entries interfaces, entries that are in a 'excluded', 'deleted' or 'absent' state (and not scheduled for re-addition) are not discovered, unless show_hidden is TRUE. Excluded entries are those with their depth set to svn_depth_exclude.

When a new directory is entered, SVN_WC_ENTRY_THIS_DIR will always be returned first.

Note:
  Callers should be aware that each directory will be returned *twice*: first as an entry within its parent, and subsequently as the '.' entry within itself. The two calls can be distinguished by looking for SVN_WC_ENTRY_THIS_DIR in the 'name' field of the entry.

Since:
  New in 1.5.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines