Subversion 1.6.16
Data Structures | Modules | Defines | Typedefs | Enumerations | Functions

Working copy management

Data Structures

struct  svn_wc_external_item2_t
 One external item. More...
struct  svn_wc_external_item_t
 One external item. More...
struct  svn_wc_diff_callbacks3_t
 A callback vtable invoked by our diff-editors, as they receive diffs from the server. More...
struct  svn_wc_diff_callbacks2_t
 Similar to svn_wc_diff_callbacks3_t, but without the dir_opened() function, 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_entry_t
 A working copy entry -- that is, revision control information about one versioned entity. 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.


 Notification callback handling
 

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


 Conflict callback functionality
 

Interactive conflict handling.


 Working size constants
 

Values for the working_size field in svn_wc_entry_t when it isn't set to the actual size value of the unchanged working file.


 Working copy status.
 

We have two functions for getting working copy status: one function for getting the status of exactly one thing, and another for getting the statuses of (potentially) multiple things.


Defines

#define SVN_WC_ADM_DIR_NAME   ".svn"
 Administrative subdir.
#define SVN_WC_ENTRY_THIS_DIR   ""
 How an entries file's owner dir is named in the entries file.

Typedefs

typedef struct svn_wc_adm_access_t svn_wc_adm_access_t
 Baton for access to a working copy administrative area.
typedef struct
svn_wc_traversal_info_t 
svn_wc_traversal_info_t
 Traversal information is information gathered by a working copy crawl or update.
typedef struct
svn_wc_external_item2_t 
svn_wc_external_item2_t
 One external item.
typedef struct
svn_wc_external_item_t 
svn_wc_external_item_t
 One external item.
typedef svn_error_t *(* svn_wc_get_file_t )(void *baton, const char *path, svn_revnum_t revision, svn_stream_t *stream, svn_revnum_t *fetched_rev, apr_hash_t **props, apr_pool_t *pool)
 A simple callback type to wrap svn_ra_get_file(); see that docstring for more information.
typedef struct
svn_wc_diff_callbacks3_t 
svn_wc_diff_callbacks3_t
 A callback vtable invoked by our diff-editors, as they receive diffs from the server.
typedef struct
svn_wc_diff_callbacks2_t 
svn_wc_diff_callbacks2_t
 Similar to svn_wc_diff_callbacks3_t, but without the dir_opened() function, 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 enum svn_wc_schedule_t svn_wc_schedule_t
 The schedule states an entry can be in.
typedef struct svn_wc_entry_t svn_wc_entry_t
 A working copy entry -- that is, revision control information about one versioned entity.
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_canonicalize_svn_prop_get_file_t )(const svn_string_t **mime_type, svn_stream_t *stream, void *baton, apr_pool_t *pool)
 Callback type used by svn_wc_canonicalize_svn_prop.
typedef enum svn_wc_merge_outcome_t svn_wc_merge_outcome_t
 The outcome of a merge carried out (or tried as a dry-run) by svn_wc_merge()
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 without the root_url arguments.
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.

Enumerations

enum  svn_wc_schedule_t {
  svn_wc_schedule_normal,
  svn_wc_schedule_add,
  svn_wc_schedule_delete,
  svn_wc_schedule_replace
}
 

The schedule states an entry can be in.

More...
enum  svn_wc_merge_outcome_t {
  svn_wc_merge_unchanged,
  svn_wc_merge_merged,
  svn_wc_merge_conflict,
  svn_wc_merge_no_merge
}
 

The outcome of a merge carried out (or tried as a dry-run) by svn_wc_merge()

More...

Functions

svn_error_tsvn_wc_adm_open3 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
 Return, in *adm_access, a pointer to a new access baton for the working copy administrative area associated with the directory path.
svn_error_tsvn_wc_adm_open2 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, apr_pool_t *pool)
 Similar to svn_wc_adm_open3(), but without cancellation support.
svn_error_tsvn_wc_adm_open (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, svn_boolean_t tree_lock, apr_pool_t *pool)
 Similar to svn_wc_adm_open2(), but with tree_lock instead of levels_to_lock.
svn_error_tsvn_wc_adm_probe_open3 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
 Checks the working copy to determine the node type of path.
svn_error_tsvn_wc_adm_probe_open2 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, apr_pool_t *pool)
 Similar to svn_wc_adm_probe_open3() without the cancel functionality.
svn_error_tsvn_wc_adm_probe_open (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, svn_boolean_t tree_lock, apr_pool_t *pool)
 Similar to svn_wc_adm_probe_open2(), but with tree_lock instead of levels_to_lock.
svn_error_tsvn_wc_adm_open_anchor (svn_wc_adm_access_t **anchor_access, svn_wc_adm_access_t **target_access, const char **target, const char *path, svn_boolean_t write_lock, int levels_to_lock, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
 Open access batons for path and return in *anchor_access and *target the anchor and target required to drive an editor.
svn_error_tsvn_wc_adm_retrieve (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, apr_pool_t *pool)
 Return, in *adm_access, a pointer to an existing access baton associated with path.
svn_error_tsvn_wc_adm_probe_retrieve (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, apr_pool_t *pool)
 Check the working copy to determine the node type of path.
svn_error_tsvn_wc_adm_probe_try3 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
 Try various ways to obtain an access baton for path.
svn_error_tsvn_wc_adm_probe_try2 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, apr_pool_t *pool)
 Similar to svn_wc_adm_probe_try3() without the cancel functionality.
svn_error_tsvn_wc_adm_probe_try (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, svn_boolean_t tree_lock, apr_pool_t *pool)
 Similar to svn_wc_adm_probe_try2(), but with tree_lock instead of levels_to_lock.
svn_error_tsvn_wc_adm_close2 (svn_wc_adm_access_t *adm_access, apr_pool_t *scratch_pool)
 Give up the access baton adm_access, and its lock if any.
svn_error_tsvn_wc_adm_close (svn_wc_adm_access_t *adm_access)
const char * svn_wc_adm_access_path (const svn_wc_adm_access_t *adm_access)
 Return the path used to open the access baton adm_access.
apr_pool_t * svn_wc_adm_access_pool (const svn_wc_adm_access_t *adm_access)
 Return the pool used by access baton adm_access.
svn_boolean_t svn_wc_adm_locked (const svn_wc_adm_access_t *adm_access)
 Return TRUE is the access baton adm_access has a write lock, FALSE otherwise.
svn_error_tsvn_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_boolean_t svn_wc_is_adm_dir (const char *name, apr_pool_t *pool)
 Return TRUE if name is the name of the WC administrative directory.
const char * svn_wc_get_adm_dir (apr_pool_t *pool)
 Return the name of the administrative directory.
svn_error_tsvn_wc_set_adm_dir (const char *name, apr_pool_t *pool)
 Use name for the administrative directory in the working copy.
svn_wc_traversal_info_tsvn_wc_init_traversal_info (apr_pool_t *pool)
 Return a new, empty traversal info object, allocated in pool.
void svn_wc_edited_externals (apr_hash_t **externals_old, apr_hash_t **externals_new, svn_wc_traversal_info_t *traversal_info)
 Set *externals_old and *externals_new to hash tables representing changes to values of the svn:externals property on directories traversed by traversal_info.
void svn_wc_traversed_depths (apr_hash_t **depths, svn_wc_traversal_info_t *traversal_info)
 Set *depths to a hash table mapping const char * directory names (directories traversed by traversal_info) to const char * values (the depths of those directories, as converted by svn_depth_to_word()).
svn_error_tsvn_wc_external_item_create (const svn_wc_external_item2_t **item, apr_pool_t *pool)
 Initialize an external item.
svn_wc_external_item2_tsvn_wc_external_item2_dup (const svn_wc_external_item2_t *item, apr_pool_t *pool)
 Return a duplicate of item, allocated in pool.
svn_wc_external_item_tsvn_wc_external_item_dup (const svn_wc_external_item_t *item, apr_pool_t *pool)
 Return a duplicate of item, allocated in pool.
svn_error_tsvn_wc_parse_externals_description3 (apr_array_header_t **externals_p, const char *parent_directory, const char *desc, svn_boolean_t canonicalize_url, apr_pool_t *pool)
 If externals_p is non-NULL, set *externals_p to an array of svn_wc_external_item2_t * objects based on desc.
svn_error_tsvn_wc_parse_externals_description2 (apr_array_header_t **externals_p, const char *parent_directory, const char *desc, apr_pool_t *pool)
 Similar to svn_wc_parse_externals_description3() with canonicalize_url set to TRUE, but returns an array of svn_wc_external_item_t * objects instead of svn_wc_external_item2_t * objects.
svn_error_tsvn_wc_parse_externals_description (apr_hash_t **externals_p, const char *parent_directory, const char *desc, apr_pool_t *pool)
 Similar to svn_wc_parse_externals_description2(), but returns the parsed externals in a hash instead of an array.
svn_error_tsvn_wc_check_wc (const char *path, int *wc_format, apr_pool_t *pool)
 Set *wc_format to path's working copy format version number if path is a valid working copy directory, else set it to 0.
svn_error_tsvn_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_tsvn_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)
 Set *modified_p to non-zero if filename's text is modified with regard to the base revision, else set *modified_p to zero.
svn_error_tsvn_wc_props_modified_p (svn_boolean_t *modified_p, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *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_tsvn_wc_entry (const svn_wc_entry_t **entry, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t show_hidden, apr_pool_t *pool)
 Set *entry to an entry for path, allocated in the access baton pool.
svn_error_tsvn_wc_entries_read (apr_hash_t **entries, svn_wc_adm_access_t *adm_access, svn_boolean_t show_hidden, apr_pool_t *pool)
 Parse the `entries' file for adm_access and return a hash entries, whose keys are (const char *) entry names and values are (svn_wc_entry_t *).
svn_wc_entry_tsvn_wc_entry_dup (const svn_wc_entry_t *entry, apr_pool_t *pool)
 Return a duplicate of entry, allocated in pool.
svn_error_tsvn_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)
 Given a path 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_tsvn_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_tsvn_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_tsvn_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_tsvn_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_tsvn_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_tsvn_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_tsvn_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)
 Ensure that an administrative area exists for path, so that path is a working copy subdir based on url at revision, with depth depth, and with repository UUID uuid and repository root URL repos.
svn_error_tsvn_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_tsvn_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_tsvn_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_tsvn_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)
 Copy src to dst_basename in dst_parent, and schedule dst_basename for addition to the repository, remembering the copy history.
svn_error_tsvn_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_tsvn_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)
 Schedule path for deletion, it will be deleted from the repository on the next commit.
svn_error_tsvn_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_tsvn_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_tsvn_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)
 Put path under version control by adding an entry in its parent, and, if path is a directory, adding an administrative area.
svn_error_tsvn_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_tsvn_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_tsvn_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)
 Add a file to a working copy at dst_path, obtaining the text-base's contents from new_base_contents, the wc file's content from new_contents, its base properties from new_base_props and wc properties from new_props.
svn_error_tsvn_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_tsvn_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_tsvn_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)
 Remove entry name in adm_access from revision control.
svn_error_tsvn_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)
 Assuming path is under version control and in a state of conflict, then take path *out* of this state.
svn_error_tsvn_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_tsvn_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_tsvn_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_tsvn_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_tsvn_wc_queue_committed2 (svn_wc_committed_queue_t *queue, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, svn_boolean_t remove_changelist, svn_checksum_t *checksum, apr_pool_t *scratch_pool)
 Queue committed items to be processed later by svn_wc_process_committed_queue().
svn_error_tsvn_wc_queue_committed (svn_wc_committed_queue_t **queue, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, 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_tsvn_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)
 Bump all items in queue to new_revnum after a commit succeeds.
svn_error_tsvn_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, 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_tsvn_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, apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, const unsigned char *digest, apr_pool_t *pool)
svn_error_tsvn_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, apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, apr_pool_t *pool)
svn_error_tsvn_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, apr_array_header_t *wcprop_changes, apr_pool_t *pool)
svn_error_tsvn_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)
 Do a depth-first crawl in a working copy, beginning at path.
svn_error_tsvn_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_tsvn_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_tsvn_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_reporter_t instead.
svn_error_tsvn_wc_is_wc_root (svn_boolean_t *wc_root, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
 Set *wc_root to TRUE if path represents a "working copy root", FALSE otherwise.
svn_error_tsvn_wc_get_actual_target (const char *path, const char **anchor, const char **target, apr_pool_t *pool)
 Conditionally split path into an anchor and target for the purpose of updating and committing.
svn_error_tsvn_wc_get_update_editor3 (svn_revnum_t *target_revision, svn_wc_adm_access_t *anchor, const char *target, svn_boolean_t use_commit_times, svn_depth_t depth, svn_boolean_t depth_is_sticky, svn_boolean_t allow_unver_obstructions, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_conflict_resolver_func_t conflict_func, void *conflict_baton, svn_wc_get_file_t fetch_func, void *fetch_baton, const char *diff3_cmd, apr_array_header_t *preserved_exts, const svn_delta_editor_t **editor, void **edit_baton, svn_wc_traversal_info_t *ti, apr_pool_t *pool)
 Set *editor and *edit_baton to an editor and baton for updating a working copy.
svn_error_tsvn_wc_get_update_editor2 (svn_revnum_t *target_revision, svn_wc_adm_access_t *anchor, const char *target, svn_boolean_t use_commit_times, svn_boolean_t recurse, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, const char *diff3_cmd, const svn_delta_editor_t **editor, void **edit_baton, svn_wc_traversal_info_t *ti, apr_pool_t *pool)
 Similar to svn_wc_get_update_editor3() but with the allow_unver_obstructions parameter always set to FALSE, conflict_func and baton set to NULL, fetch_func and baton set to NULL, preserved_exts set to NULL, depth_is_sticky set to FALSE, and depth set according to recurse: if recurse is TRUE, pass svn_depth_infinity, if FALSE, pass svn_depth_files.
svn_error_tsvn_wc_get_update_editor (svn_revnum_t *target_revision, svn_wc_adm_access_t *anchor, const char *target, svn_boolean_t use_commit_times, svn_boolean_t recurse, svn_wc_notify_func_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, const char *diff3_cmd, const svn_delta_editor_t **editor, void **edit_baton, svn_wc_traversal_info_t *ti, apr_pool_t *pool)
 Similar to svn_wc_get_update_editor2(), but takes an svn_wc_notify_func_t instead.
svn_error_tsvn_wc_get_switch_editor3 (svn_revnum_t *target_revision, svn_wc_adm_access_t *anchor, const char *target, const char *switch_url, svn_boolean_t use_commit_times, svn_depth_t depth, svn_boolean_t depth_is_sticky, svn_boolean_t allow_unver_obstructions, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_conflict_resolver_func_t conflict_func, void *conflict_baton, const char *diff3_cmd, apr_array_header_t *preserved_exts, const svn_delta_editor_t **editor, void **edit_baton, svn_wc_traversal_info_t *ti, apr_pool_t *pool)
 A variant of svn_wc_get_update_editor().
svn_error_tsvn_wc_get_switch_editor2 (svn_revnum_t *target_revision, svn_wc_adm_access_t *anchor, const char *target, const char *switch_url, svn_boolean_t use_commit_times, svn_boolean_t recurse, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, const char *diff3_cmd, const svn_delta_editor_t **editor, void **edit_baton, svn_wc_traversal_info_t *ti, apr_pool_t *pool)
 Similar to svn_wc_get_switch_editor3() but with the allow_unver_obstructions parameter always set to FALSE, preserved_exts set to NULL, conflict_func and baton set to NULL, depth_is_sticky set to FALSE, and depth set according to recurse: if recurse is TRUE, pass svn_depth_infinity, if FALSE, pass svn_depth_files.
svn_error_tsvn_wc_get_switch_editor (svn_revnum_t *target_revision, svn_wc_adm_access_t *anchor, const char *target, const char *switch_url, svn_boolean_t use_commit_times, svn_boolean_t recurse, svn_wc_notify_func_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, const char *diff3_cmd, const svn_delta_editor_t **editor, void **edit_baton, svn_wc_traversal_info_t *ti, apr_pool_t *pool)
 Similar to svn_wc_get_switch_editor2(), but takes an svn_wc_notify_func_t instead.
svn_error_tsvn_wc_prop_list (apr_hash_t **props, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
 Set *props to a hash table mapping char * names onto svn_string_t * values for all the regular properties of path.
svn_error_tsvn_wc_prop_get (const svn_string_t **value, const char *name, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
 Set *value to the value of property name for path, allocating *value in pool.
svn_error_tsvn_wc_prop_set3 (const char *name, const svn_string_t *value, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t skip_checks, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool)
 Set property name to value for path, or if value is NULL, remove property name from path.
svn_error_tsvn_wc_prop_set2 (const char *name, const svn_string_t *value, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t skip_checks, apr_pool_t *pool)
 Like svn_wc_prop_set3(), but without the notification callbacks.
svn_error_tsvn_wc_prop_set (const char *name, const svn_string_t *value, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
 Like svn_wc_prop_set2(), but with skip_checks always FALSE.
svn_boolean_t svn_wc_is_normal_prop (const char *name)
 Return TRUE iff name is a 'normal' property name.
svn_boolean_t svn_wc_is_wc_prop (const char *name)
 Return TRUE iff name is a 'wc' property name.
svn_boolean_t svn_wc_is_entry_prop (const char *name)
 Return TRUE iff name is a 'entry' property name.
svn_error_tsvn_wc_canonicalize_svn_prop (const svn_string_t **propval_p, const char *propname, const svn_string_t *propval, const char *path, svn_node_kind_t kind, svn_boolean_t skip_some_checks, svn_wc_canonicalize_svn_prop_get_file_t prop_getter, void *getter_baton, apr_pool_t *pool)
 Canonicalize the value of an svn:* property propname with value propval.
svn_error_tsvn_wc_get_diff_editor5 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks3_t *callbacks, void *callback_baton, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t use_text_base, svn_boolean_t reverse_order, svn_cancel_func_t cancel_func, void *cancel_baton, const apr_array_header_t *changelists, const svn_delta_editor_t **editor, void **edit_baton, apr_pool_t *pool)
 Return an editor/edit_baton for diffing a working copy against the repository.
svn_error_tsvn_wc_get_diff_editor4 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks2_t *callbacks, void *callback_baton, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t use_text_base, svn_boolean_t reverse_order, svn_cancel_func_t cancel_func, void *cancel_baton, const apr_array_header_t *changelists, const svn_delta_editor_t **editor, void **edit_baton, apr_pool_t *pool)
 Similar to svn_wc_get_diff_editor5(), but with an svn_wc_diff_callbacks2_t instead of svn_wc_diff_callbacks3_t.
svn_error_tsvn_wc_get_diff_editor3 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks2_t *callbacks, void *callback_baton, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t use_text_base, svn_boolean_t reverse_order, svn_cancel_func_t cancel_func, void *cancel_baton, const svn_delta_editor_t **editor, void **edit_baton, apr_pool_t *pool)
 Similar to svn_wc_get_diff_editor4(), but with changelists passed as NULL, and depth set to svn_depth_infinity if recurse is TRUE, or svn_depth_files if recurse is FALSE.
svn_error_tsvn_wc_get_diff_editor2 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks_t *callbacks, void *callback_baton, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t use_text_base, svn_boolean_t reverse_order, svn_cancel_func_t cancel_func, void *cancel_baton, const svn_delta_editor_t **editor, void **edit_baton, apr_pool_t *pool)
 Similar to svn_wc_get_diff_editor3(), but with an svn_wc_diff_callbacks_t instead of svn_wc_diff_callbacks2_t.
svn_error_tsvn_wc_get_diff_editor (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks_t *callbacks, void *callback_baton, svn_boolean_t recurse, svn_boolean_t use_text_base, svn_boolean_t reverse_order, svn_cancel_func_t cancel_func, void *cancel_baton, const svn_delta_editor_t **editor, void **edit_baton, apr_pool_t *pool)
 Similar to svn_wc_get_diff_editor2(), but with ignore_ancestry always set to FALSE.
svn_error_tsvn_wc_diff5 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks3_t *callbacks, void *callback_baton, svn_depth_t depth, svn_boolean_t ignore_ancestry, const apr_array_header_t *changelists, apr_pool_t *pool)
 Compare working copy against the text-base.
svn_error_tsvn_wc_diff4 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks2_t *callbacks, void *callback_baton, svn_depth_t depth, svn_boolean_t ignore_ancestry, const apr_array_header_t *changelists, apr_pool_t *pool)
 Similar to svn_wc_diff5(), but with a svn_wc_diff_callbacks2_t argument instead of svn_wc_diff_callbacks3_t.
svn_error_tsvn_wc_diff3 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks2_t *callbacks, void *callback_baton, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, apr_pool_t *pool)
 Similar to svn_wc_diff4(), but with changelists passed NULL, and depth set to svn_depth_infinity if recurse is TRUE, or svn_depth_files if recurse is FALSE.
svn_error_tsvn_wc_diff2 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks_t *callbacks, void *callback_baton, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, apr_pool_t *pool)
 Similar to svn_wc_diff3(), but with a svn_wc_diff_callbacks_t argument instead of svn_wc_diff_callbacks2_t.
svn_error_tsvn_wc_diff (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks_t *callbacks, void *callback_baton, svn_boolean_t recurse, apr_pool_t *pool)
 Similar to svn_wc_diff2(), but with ignore_ancestry always set to FALSE.
svn_error_tsvn_wc_get_prop_diffs (apr_array_header_t **propchanges, apr_hash_t **original_props, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
 Given a path to a file or directory under version control, discover any local changes made to properties and/or the set of 'pristine' properties.
svn_error_tsvn_wc_merge3 (enum svn_wc_merge_outcome_t *merge_outcome, const char *left, const char *right, const char *merge_target, svn_wc_adm_access_t *adm_access, const char *left_label, const char *right_label, const char *target_label, svn_boolean_t dry_run, const char *diff3_cmd, const apr_array_header_t *merge_options, const apr_array_header_t *prop_diff, svn_wc_conflict_resolver_func_t conflict_func, void *conflict_baton, apr_pool_t *pool)
 Given paths to three fulltexts, merge the differences between left and right into merge_target.
svn_error_tsvn_wc_merge2 (enum svn_wc_merge_outcome_t *merge_outcome, const char *left, const char *right, const char *merge_target, svn_wc_adm_access_t *adm_access, const char *left_label, const char *right_label, const char *target_label, svn_boolean_t dry_run, const char *diff3_cmd, const apr_array_header_t *merge_options, apr_pool_t *pool)
 Similar to svn_wc_merge3(), but with prop_diff, conflict_func, conflict_baton set to NULL.
svn_error_tsvn_wc_merge (const char *left, const char *right, const char *merge_target, svn_wc_adm_access_t *adm_access, const char *left_label, const char *right_label, const char *target_label, svn_boolean_t dry_run, enum svn_wc_merge_outcome_t *merge_outcome, const char *diff3_cmd, apr_pool_t *pool)
 Similar to svn_wc_merge2(), but with merge_options set to NULL.
svn_error_tsvn_wc_merge_props2 (svn_wc_notify_state_t *state, const char *path, svn_wc_adm_access_t *adm_access, apr_hash_t *baseprops, const apr_array_header_t *propchanges, svn_boolean_t base_merge, svn_boolean_t dry_run, svn_wc_conflict_resolver_func_t conflict_func, void *conflict_baton, apr_pool_t *pool)
 Given a path under version control, merge an array of propchanges into the path's existing properties.
svn_error_tsvn_wc_merge_props (svn_wc_notify_state_t *state, const char *path, svn_wc_adm_access_t *adm_access, apr_hash_t *baseprops, const apr_array_header_t *propchanges, svn_boolean_t base_merge, svn_boolean_t dry_run, apr_pool_t *pool)
 Same as svn_wc_merge_props2(), but with a conflict_func (and baton) of NULL.
svn_error_tsvn_wc_merge_prop_diffs (svn_wc_notify_state_t *state, const char *path, svn_wc_adm_access_t *adm_access, const apr_array_header_t *propchanges, svn_boolean_t base_merge, svn_boolean_t dry_run, apr_pool_t *pool)
 Similar to svn_wc_merge_props(), but no baseprops are given.
svn_error_tsvn_wc_get_pristine_contents (svn_stream_t **contents, const char *path, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Given a path to a wc file, return a stream to the contents of the pristine copy of the file.
svn_error_tsvn_wc_get_pristine_copy_path (const char *path, const char **pristine_path, apr_pool_t *pool)
 Returns a path to the pristine copy of path.
svn_error_tsvn_wc_cleanup2 (const char *path, const char *diff3_cmd, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
 Recurse from path, cleaning up unfinished log business.
svn_error_tsvn_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_tsvn_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)
 Change repository references at path that begin with from to begin with to instead.
svn_error_tsvn_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_tsvn_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_tsvn_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 *changelists, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool)
 Revert changes to path.
svn_error_tsvn_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 changelists 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_tsvn_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_tsvn_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_tsvn_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_tsvn_wc_translated_file2 (const char **xlated_path, const char *src, const char *versioned_file, svn_wc_adm_access_t *adm_access, apr_uint32_t flags, apr_pool_t *pool)
 Set xlated_path to a translated copy of src or to src itself if no translation is necessary.
svn_error_tsvn_wc_translated_file (const char **xlated_p, const char *vfile, svn_wc_adm_access_t *adm_access, svn_boolean_t force_repair, apr_pool_t *pool)
 Same as svn_wc_translated_file2, but will never clean up temporary files.
svn_error_tsvn_wc_translated_stream (svn_stream_t **stream, const char *path, const char *versioned_file, svn_wc_adm_access_t *adm_access, apr_uint32_t flags, apr_pool_t *pool)
 Returns a stream allocated in pool with access to the given path taking the file properties from versioned_file using adm_access.
svn_error_tsvn_wc_transmit_text_deltas2 (const char **tempfile, unsigned char digest[], const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t fulltext, const svn_delta_editor_t *editor, void *file_baton, apr_pool_t *pool)
 Send the local modifications for versioned file path (with matching file_baton) through editor, then close file_baton afterwards.
svn_error_tsvn_wc_transmit_text_deltas (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t fulltext, const svn_delta_editor_t *editor, void *file_baton, const char **tempfile, apr_pool_t *pool)
 Similar to svn_wc_transmit_text_deltas2(), but with digest set to NULL.
svn_error_tsvn_wc_transmit_prop_deltas (const char *path, svn_wc_adm_access_t *adm_access, const svn_wc_entry_t *entry, const svn_delta_editor_t *editor, void *baton, const char **tempfile, apr_pool_t *pool)
 Given a path with its accompanying entry, transmit all local property modifications using the appropriate editor method (in conjunction with baton).
svn_error_tsvn_wc_get_default_ignores (apr_array_header_t **patterns, apr_hash_t *config, apr_pool_t *pool)
 Get the run-time configured list of ignore patterns from the svn_config_t's in the config hash, and store them in *patterns.
svn_error_tsvn_wc_get_ignores (apr_array_header_t **patterns, apr_hash_t *config, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
 Get the list of ignore patterns from the svn_config_t's in the config hash and the local ignore patterns from the directory in adm_access, and store them in *patterns.
svn_boolean_t svn_wc_match_ignore_list (const char *str, apr_array_header_t *list, apr_pool_t *pool)
 Return TRUE iff str matches any of the elements of list, a list of zero or more ignore patterns.
svn_error_tsvn_wc_add_lock (const char *path, const svn_lock_t *lock, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
 Add lock to the working copy for path.
svn_error_tsvn_wc_remove_lock (const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
 Remove any lock from path.
svn_error_tsvn_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)
 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 wc_path (not including "externals").
svn_error_tsvn_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)
 Set path's entry's 'changelist' attribute to changelist iff changelist is not NULL; otherwise, remove any current changelist assignment from path.
svn_error_tsvn_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)
 Crop target according to depth.

Define Documentation

#define SVN_WC_ADM_DIR_NAME   ".svn"

Administrative subdir.

Ideally, this would be completely private to wc internals (in fact, it used to be that adm_subdir() in adm_files.c was the only function who knew the adm subdir's name). However, import wants to protect against importing administrative subdirs, so now the name is a matter of public record.

Deprecated:
Provided for backward compatibility with the 1.2 API.

Definition at line 1982 of file svn_wc.h.

#define SVN_WC_ENTRY_THIS_DIR   ""

How an entries file's owner dir is named in the entries file.

Definition at line 2265 of file svn_wc.h.


Typedef Documentation

Baton for access to a working copy administrative area.

One day all such access will require a baton, we're not there yet.

Access batons can be grouped into sets, by passing an existing open baton when opening a new baton. Given one baton in a set, other batons may be retrieved. This allows an entire hierarchy to be locked, and then the set of batons can be passed around by passing a single baton.

Definition at line 142 of file svn_wc.h.

typedef svn_error_t*(* svn_wc_canonicalize_svn_prop_get_file_t)(const svn_string_t **mime_type, svn_stream_t *stream, void *baton, apr_pool_t *pool)

Callback type used by svn_wc_canonicalize_svn_prop.

If mime_type is non-null, it sets *mime_type to the value of SVN_PROP_MIME_TYPE for the path passed to svn_wc_canonicalize_svn_prop (allocated from pool). If stream is non-null, it writes the contents of the file to stream.

(Currently, this is used if you are attempting to set the SVN_PROP_EOL_STYLE property, to make sure that the value matches the mime type and contents.)

Definition at line 4432 of file svn_wc.h.

Storage type for queued post-commit data.

Since:
New in 1.5.

Definition at line 3637 of file svn_wc.h.

Similar to svn_wc_diff_callbacks3_t, but without the dir_opened() function, and without the 'tree_conflicted' argument to the functions.

Deprecated:
Provided for backward compatibility with the 1.2 API.

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

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

Common parameters:

adm_access will be an access baton for the directory containing path, or NULL if the diff editor is not using access batons.

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.6.

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.

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

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

One external item.

This usually represents one line from an svn:externals description but with the path and URL canonicalized.

In order to avoid backwards compatibility problems clients should use svn_wc_external_item_create() to allocate and initialize this structure instead of doing so themselves.

Since:
New in 1.5.

One external item.

Similar to svn_wc_external_item2_t, except revision is interpreted as both the operational revision and the peg revision.

Deprecated:
Provided for backward compatibility with the 1.4 API.
typedef svn_error_t*(* svn_wc_get_file_t)(void *baton, const char *path, svn_revnum_t revision, svn_stream_t *stream, svn_revnum_t *fetched_rev, apr_hash_t **props, apr_pool_t *pool)

A simple callback type to wrap svn_ra_get_file(); see that docstring for more information.

This technique allows libsvn_client to 'wrap' svn_ra_get_file() and pass it down into libsvn_wc functions, thus allowing the WC layer to legally call the RA function via (blind) callback.

Since:
New in 1.5

Definition at line 1115 of file svn_wc.h.

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 without the root_url arguments.

Deprecated:
Provided for backwards compatibility with the 1.4 API.

Definition at line 5061 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 is TRUE, then the implementation should make sure that url is the repository root. Else, it can be an URL inside the repository. pool may be used for temporary allocations.

Since:
New in 1.5.

Definition at line 5050 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 5073 of file svn_wc.h.

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

The schedule states an entry can be in.

Traversal information is information gathered by a working copy crawl or update.

For example, the before and after values of the svn:externals property are important after an update, and since we're traversing the working tree anyway (a complete traversal during the initial crawl, and a traversal of changed paths during the checkout/update/switch), it makes sense to gather the property's values then instead of making a second pass.

Definition at line 502 of file svn_wc.h.


Enumeration Type Documentation

The outcome of a merge carried out (or tried as a dry-run) by svn_wc_merge()

Enumerator:
svn_wc_merge_unchanged 

The working copy is (or would be) unchanged.

The changes to be merged were already present in the working copy

svn_wc_merge_merged 

The working copy has been (or would be) changed.

svn_wc_merge_conflict 

The working copy has been (or would be) changed, but there was (or would be) a conflict.

svn_wc_merge_no_merge 

No merge was performed, probably because the target file was either absent or not under version control.

Definition at line 4754 of file svn_wc.h.

The schedule states an entry can be in.

Enumerator:
svn_wc_schedule_normal 

Nothing special here.

svn_wc_schedule_add 

Slated for addition.

svn_wc_schedule_delete 

Slated for deletion.

svn_wc_schedule_replace 

Slated for replacement (delete + add)

Definition at line 1989 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 
)

Put path under version control by adding an entry in its parent, and, if path is a directory, adding an administrative area.

The new entry and anything under it is scheduled for addition to the repository. parent_access should hold a write lock for the parent directory of path. If path is a directory then an access baton for path will be added to the set containing parent_access.

If path does not exist, return SVN_ERR_WC_PATH_NOT_FOUND.

If path is a directory, add it at depth; otherwise, ignore depth.

If copyfrom_url is non-NULL, it and copyfrom_rev are used as `copyfrom' args. This is for copy operations, where one wants to schedule path for addition with a particular history.

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 path has been added, then notify_func will be called (if it is not NULL) with the notify_baton and the path.

Return SVN_ERR_WC_NODE_KIND_CHANGE if path is both an unversioned directory and a file that is scheduled for deletion or in state deleted.

 ### This function currently does double duty -- it is also
 ### responsible for "switching" a working copy directory over to a
 ### new copyfrom ancestry and scheduling it for addition.  Here is
 ### the old doc string from Ben, lightly edited to bring it
 ### up-to-date, explaining the TRUE, secret life of this function:

Given a path within a working copy of type KIND, follow this algorithm:

  • if path is not under version control:
    • Place it under version control and schedule for addition; if copyfrom_url is non-NULL, use it and copyfrom_rev as 'copyfrom' history
  • if path is already under version control: (This can only happen when a directory is copied, in which case ancestry must have been supplied as well.)
  • Schedule the directory itself for addition with copyfrom history.
  • Mark all its children with a 'copied' flag
  • Rewrite all the URLs to what they will be after a commit.
  • ###
    Todo:
    Remove old wcprops too, see the '###' below.
 ### I think possibly the "switchover" functionality should be
 ### broken out into a separate function, but its all intertwined in
 ### the code right now.  Ben, thoughts?  Hard?  Easy?  Mauve?

### Update: see "###" comment in svn_wc_add_repos_file3()'s doc string about this.

Since:
New in 1.6.
svn_error_t* svn_wc_add_lock ( const char *  path,
const svn_lock_t lock,
svn_wc_adm_access_t adm_access,
apr_pool_t *  pool 
)

Add lock to the working copy for path.

adm_access must contain a write lock for path. If path is read-only, due to locking properties, make it writable. Perform temporary allocations in pool.

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 
)

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

The base text and props normally come from the repository file represented by the copyfrom args, see below. The new file will be scheduled for addition with history.

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.

adm_access, or an access baton in its associated set, must contain a write lock for the parent of dst_path.

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 will be notified of the addition of this file.

Use scratch_pool for temporary allocations.

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

### 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.6
svn_error_t* svn_wc_adm_close2 ( svn_wc_adm_access_t adm_access,
apr_pool_t *  scratch_pool 
)

Give up the access baton adm_access, and its lock if any.

This will recursively close any batons in the same set that are direct subdirectories of adm_access. Any physical locks will be removed from the working copy. Lock removal is unconditional, there is no check to determine if cleanup is required.

Any temporary allocations are performed using scratch_pool.

Since:
New in 1.6
svn_boolean_t svn_wc_adm_locked ( const svn_wc_adm_access_t adm_access)

Return TRUE is the access baton adm_access has a write lock, FALSE otherwise.

Compared to svn_wc_locked() this is a cheap, fast function that doesn't access the filesystem.

svn_error_t* svn_wc_adm_open ( svn_wc_adm_access_t **  adm_access,
svn_wc_adm_access_t associated,
const char *  path,
svn_boolean_t  write_lock,
svn_boolean_t  tree_lock,
apr_pool_t *  pool 
)

Similar to svn_wc_adm_open2(), but with tree_lock instead of levels_to_lock.

levels_to_lock is set to -1 if tree_lock is TRUE, else 0.

Deprecated:
Provided for backward compatibility with the 1.0 API.
svn_error_t* svn_wc_adm_open2 ( svn_wc_adm_access_t **  adm_access,
svn_wc_adm_access_t associated,
const char *  path,
svn_boolean_t  write_lock,
int  levels_to_lock,
apr_pool_t *  pool 
)

Similar to svn_wc_adm_open3(), but without cancellation support.

Deprecated:
Provided for backward compatibility with the 1.1 API.
svn_error_t* svn_wc_adm_open3 ( svn_wc_adm_access_t **  adm_access,
svn_wc_adm_access_t associated,
const char *  path,
svn_boolean_t  write_lock,
int  levels_to_lock,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
apr_pool_t *  pool 
)

Return, in *adm_access, a pointer to a new access baton for the working copy administrative area associated with the directory path.

If write_lock is TRUE the baton will include a write lock, otherwise the baton can only be used for read access. If path refers to a directory that is already write locked then the error SVN_ERR_WC_LOCKED will be returned. The error SVN_ERR_WC_NOT_DIRECTORY will be returned if path is not a versioned directory.

If associated is an open access baton then adm_access will be added to the set containing associated. associated can be NULL, in which case adm_access is the start of a new set.

levels_to_lock specifies how far to lock. Zero means just the specified directory. Any negative value means to lock the entire working copy directory hierarchy under path. A positive value indicates the number of levels of directories to lock -- 1 means just immediate subdirectories, 2 means immediate subdirectories and their subdirectories, etc. All the access batons will become part of the set containing adm_access. This is an all-or-nothing option, if it is not possible to lock all the requested directories then an error will be returned and adm_access will be invalid, with the exception that subdirectories of path that are missing from the physical filesystem will not be locked and will not cause an error. The error SVN_ERR_WC_LOCKED will be returned if a subdirectory of path is already write locked.

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

pool will be used to allocate memory for the baton and any subsequently cached items. If adm_access has not been closed when the pool is cleared, it will be closed automatically at that point, and removed from its set. A baton closed in this way will not remove physical locks from the working copy if cleanup is required.

The first baton in a set, with associated passed as NULL, must have the longest lifetime of all the batons in the set. This implies it must be the root of the hierarchy.

Since:
New in 1.2.
svn_error_t* svn_wc_adm_open_anchor ( svn_wc_adm_access_t **  anchor_access,
svn_wc_adm_access_t **  target_access,
const char **  target,
const char *  path,
svn_boolean_t  write_lock,
int  levels_to_lock,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
apr_pool_t *  pool 
)

Open access batons for path and return in *anchor_access and *target the anchor and target required to drive an editor.

Return in *target_access the access baton for the target, which may be the same as *anchor_access (in which case *target is the empty string, never NULL). All the access batons will be in the *anchor_access set.

levels_to_lock determines the levels_to_lock used when opening path if path is a versioned directory, levels_to_lock is ignored otherwise. If write_lock is TRUE the access batons will hold write locks.

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

This function is essentially a combination of svn_wc_adm_open3() and svn_wc_get_actual_target(), with the emphasis on reducing physical IO.

Since:
New in 1.2.
svn_error_t* svn_wc_adm_probe_open ( svn_wc_adm_access_t **  adm_access,
svn_wc_adm_access_t associated,
const char *  path,
svn_boolean_t  write_lock,
svn_boolean_t  tree_lock,
apr_pool_t *  pool 
)

Similar to svn_wc_adm_probe_open2(), but with tree_lock instead of levels_to_lock.

levels_to_lock is set to -1 if tree_lock is TRUE, else 0.

Deprecated:
Provided for backward compatibility with the 1.0 API.
svn_error_t* svn_wc_adm_probe_open2 ( svn_wc_adm_access_t **  adm_access,
svn_wc_adm_access_t associated,
const char *  path,
svn_boolean_t  write_lock,
int  levels_to_lock,
apr_pool_t *  pool 
)

Similar to svn_wc_adm_probe_open3() without the cancel functionality.

Deprecated:
Provided for backward compatibility with the 1.1 API.
svn_error_t* svn_wc_adm_probe_open3 ( svn_wc_adm_access_t **  adm_access,
svn_wc_adm_access_t associated,
const char *  path,
svn_boolean_t  write_lock,
int  levels_to_lock,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
apr_pool_t *  pool 
)

Checks the working copy to determine the node type of path.

If path is a versioned directory then the behaviour is like that of svn_wc_adm_open3(), otherwise, if path is a file or does not exist, then the behaviour is like that of svn_wc_adm_open3() with path replaced by the parent directory of path. If path is an unversioned directory, the behaviour is also like that of svn_wc_adm_open3() on the parent, except that if the open fails, then the returned SVN_ERR_WC_NOT_DIRECTORY error refers to path, not to path's parent.

Since:
New in 1.2.
svn_error_t* svn_wc_adm_probe_retrieve ( svn_wc_adm_access_t **  adm_access,
svn_wc_adm_access_t associated,
const char *  path,
apr_pool_t *  pool 
)

Check the working copy to determine the node type of path.

If path is a versioned directory then the behaviour is like that of svn_wc_adm_retrieve(), otherwise, if path is a file, an unversioned directory, or does not exist, then the behaviour is like that of svn_wc_adm_retrieve() with path replaced by the parent directory of path.

svn_error_t* svn_wc_adm_probe_try ( svn_wc_adm_access_t **  adm_access,
svn_wc_adm_access_t associated,
const char *  path,
svn_boolean_t  write_lock,
svn_boolean_t  tree_lock,
apr_pool_t *  pool 
)

Similar to svn_wc_adm_probe_try2(), but with tree_lock instead of levels_to_lock.

levels_to_lock is set to -1 if tree_lock is TRUE, else 0.

Deprecated:
Provided for backward compatibility with the 1.0 API.
svn_error_t* svn_wc_adm_probe_try2 ( svn_wc_adm_access_t **  adm_access,
svn_wc_adm_access_t associated,
const char *  path,
svn_boolean_t  write_lock,
int  levels_to_lock,
apr_pool_t *  pool 
)

Similar to svn_wc_adm_probe_try3() without the cancel functionality.

Deprecated:
Provided for backward compatibility with the 1.1 API.
svn_error_t* svn_wc_adm_probe_try3 ( svn_wc_adm_access_t **  adm_access,
svn_wc_adm_access_t associated,
const char *  path,
svn_boolean_t  write_lock,
int  levels_to_lock,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
apr_pool_t *  pool 
)

Try various ways to obtain an access baton for path.

First, try to obtain *adm_access via svn_wc_adm_probe_retrieve(), but if this fails because associated can't give a baton for path or path's parent, then try svn_wc_adm_probe_open3(), this time passing write_lock and levels_to_lock. If there is still no access because path is not a versioned directory, then just set *adm_access to NULL and return success. But if it is because path is locked, then return the error SVN_ERR_WC_LOCKED, and the effect on *adm_access is undefined. (Or if the attempt fails for any other reason, return the corresponding error, and the effect on *adm_access is also undefined.)

If svn_wc_adm_probe_open3() succeeds, then add *adm_access to associated.

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

Use pool only for local processing, not to allocate *adm_access.

Since:
New in 1.2.
svn_error_t* svn_wc_adm_retrieve ( svn_wc_adm_access_t **  adm_access,
svn_wc_adm_access_t associated,
const char *  path,
apr_pool_t *  pool 
)

Return, in *adm_access, a pointer to an existing access baton associated with path.

path must be a directory that is locked as part of the set containing the associated access baton.

If the requested access baton is marked as missing in, or is simply absent from, associated, return SVN_ERR_WC_NOT_LOCKED.

pool is used only for local processing, it is not used for the batons.

svn_error_t* svn_wc_canonicalize_svn_prop ( const svn_string_t **  propval_p,
const char *  propname,
const svn_string_t propval,
const char *  path,
svn_node_kind_t  kind,
svn_boolean_t  skip_some_checks,
svn_wc_canonicalize_svn_prop_get_file_t  prop_getter,
void *  getter_baton,
apr_pool_t *  pool 
)

Canonicalize the value of an svn:* property propname with value propval.

If the property is not appropriate for a node of kind kind, or is otherwise invalid, throw an error. Otherwise, set *propval_p to a canonicalized version of the property value. If skip_some_checks is TRUE, only some validity checks are taken.

Some validity checks require access to the contents and MIME type of the target if it is a file; they will call prop_getter with getter_baton, which then needs to set the MIME type and print the contents of the file to the given stream.

path should be the path of the file in question; it is only used for error messages.

### This is not actually related to the WC, but it does need to call ### svn_wc_parse_externals_description2.

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

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

Return error APR_ENOENT if path does not exist at all.

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 
)

Recurse from path, cleaning up unfinished log business.

Perform necessary allocations in pool. Any working copy locks under path will be taken over and then cleared by this function. If diff3_cmd is non-NULL, then use it as the diff3 command for any merging; otherwise, use the built-in merge code.

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.2.
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 queueing 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 
)

Given a path 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 path is unversioned or does not exist, *text_conflicted_p and *prop_conflicted_p will be FALSE if non-NULL.

adm_access is the admin access baton of the parent directory.

If the path 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.6.
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 
)

Copy src to dst_basename in dst_parent, and schedule dst_basename for addition to the repository, remembering the copy history.

src must be a file or directory under version control; dst_parent must be a directory under version control in the same working copy; dst_basename will be the name of the copied item, and it must not exist already.

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 file or directory copied, notify_func will be called with its path and the notify_baton. notify_func may be NULL if you are not interested in this information.

Important:
This is a variant of svn_wc_add(). No changes will happen to the repository until a commit occurs. This scheduling can be removed with svn_client_revert2().
Since:
New in 1.2.
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_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 
)

Do a depth-first crawl in a working copy, beginning at path.

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

No locks are or logs are created, nor are any animals harmed in the process. No cleanup is necessary. adm_access must be an access baton for the path hierarchy, it does not require a write lock.

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.

If traversal_info is non-NULL, then record pre-update traversal state in it. (Caller should obtain traversal_info from svn_wc_init_traversal_info().)

Since:
New in 1.6.
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
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 
)

Crop target according to depth.

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

If target 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 no error if target is not a directory, or if depth is not restrictive (e.g., svn_depth_infinity).

anchor is an access baton, with a tree lock, for the local path to the working copy which will be used as the root of this operation. If target is not empty, it represents an entry in the anchor path; otherwise, the anchor path is the target. target may not be NULL.

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

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

Note:
: svn_depth_exclude currently does nothing; passing it results in immediate success with no side effects.
Since:
New in 1.6
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 
)

Schedule path for deletion, it will be deleted from the repository on the next commit.

If path refers to a directory, then a recursive deletion will occur. adm_access must hold a write lock for the parent of path.

If keep_local is FALSE, this function immediately deletes all files, modified and unmodified, versioned and unversioned from the working copy. It also immediately deletes unversioned directories and directories that are scheduled to be added. Only versioned directories will 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 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.

Since:
New in 1.5.
svn_error_t* svn_wc_diff ( svn_wc_adm_access_t anchor,
const char *  target,
const svn_wc_diff_callbacks_t callbacks,
void *  callback_baton,
svn_boolean_t  recurse,
apr_pool_t *  pool 
)

Similar to svn_wc_diff2(), but with ignore_ancestry always set to FALSE.

Deprecated:
Provided for backward compatibility with the 1.0 API.
svn_error_t* svn_wc_diff2 ( svn_wc_adm_access_t anchor,
const char *  target,
const svn_wc_diff_callbacks_t callbacks,
void *  callback_baton,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
apr_pool_t *  pool 
)

Similar to svn_wc_diff3(), but with a svn_wc_diff_callbacks_t argument instead of svn_wc_diff_callbacks2_t.

Deprecated:
Provided for backward compatibility with the 1.1 API.
svn_error_t* svn_wc_diff3 ( svn_wc_adm_access_t anchor,
const char *  target,
const svn_wc_diff_callbacks2_t callbacks,
void *  callback_baton,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
apr_pool_t *  pool 
)

Similar to svn_wc_diff4(), but with changelists passed NULL, and depth set to svn_depth_infinity if recurse is TRUE, or svn_depth_files if recurse is FALSE.

Deprecated:
Provided for backward compatibility with the 1.2 API.
svn_error_t* svn_wc_diff4 ( svn_wc_adm_access_t anchor,
const char *  target,
const svn_wc_diff_callbacks2_t callbacks,
void *  callback_baton,
svn_depth_t  depth,
svn_boolean_t  ignore_ancestry,
const apr_array_header_t *  changelists,
apr_pool_t *  pool 
)

Similar to svn_wc_diff5(), but with a svn_wc_diff_callbacks2_t argument instead of svn_wc_diff_callbacks3_t.

Deprecated:
Provided for backward compatibility with the 1.5 API.
svn_error_t* svn_wc_diff5 ( svn_wc_adm_access_t anchor,
const char *  target,
const svn_wc_diff_callbacks3_t callbacks,
void *  callback_baton,
svn_depth_t  depth,
svn_boolean_t  ignore_ancestry,
const apr_array_header_t *  changelists,
apr_pool_t *  pool 
)

Compare working copy against the text-base.

anchor/target represent the base of the hierarchy to be compared.

callbacks/callback_baton is the callback table to use when two files are to be compared.

If depth is svn_depth_empty, just diff exactly target or anchor if target is empty. If svn_depth_files then do the same and for top-level file entries as well (if any). If svn_depth_immediates, do the same as svn_depth_files but also diff top-level subdirectories at svn_depth_empty. If svn_depth_infinity, then diff fully recursively. In the latter case, anchor should be part of an access baton set for the target hierarchy.

ignore_ancestry determines whether paths that have discontinuous node ancestry are treated as delete/add or as simple modifications. If ignore_ancestry is FALSE, then any discontinuous node ancestry will result in the diff given as a full delete followed by an add.

changelists is an array of const char * changelist names, used as a restrictive filter on items whose differences are reported; that is, don't generate diffs about any item unless it's a member of one of those changelists. If changelists is empty (or altogether NULL), no changelist filtering occurs.

Since:
New in 1.6.
void svn_wc_edited_externals ( apr_hash_t **  externals_old,
apr_hash_t **  externals_new,
svn_wc_traversal_info_t traversal_info 
)

Set *externals_old and *externals_new to hash tables representing changes to values of the svn:externals property on directories traversed by traversal_info.

traversal_info is obtained from svn_wc_init_traversal_info(), but is only useful after it has been passed through another function, such as svn_wc_crawl_revisions(), svn_wc_get_update_editor(), svn_wc_get_switch_editor(), etc.

Each hash maps const char * directory names onto const char * values of the externals property for that directory. The dir names are full paths -- that is, anchor plus target, not target alone. The values are not parsed, they are simply copied raw, and are never NULL: directories that acquired or lost the property are simply omitted from the appropriate table. Directories whose value of the property did not change show the same value in each hash.

The hashes, keys, and values have the same lifetime as traversal_info.

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.

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.

Deprecated:
Provided for backwards compatibility with the 1.4 API.
Since:
New in 1.3.
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 
)

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

depth must be a definite depth, it cannot be svn_depth_unknown. uuid and repos may be NULL. If non-NULL, repos 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 path itself; if path does not exist, return error.

Since:
New in 1.5.
svn_error_t* svn_wc_entries_read ( apr_hash_t **  entries,
svn_wc_adm_access_t adm_access,
svn_boolean_t  show_hidden,
apr_pool_t *  pool 
)

Parse the `entries' file for adm_access and return a hash entries, whose keys are (const char *) entry names and values are (svn_wc_entry_t *).

The hash entries, and its keys and values, are allocated from the pool used to open the adm_access baton (that's how the entries caching works). pool is used for transient allocations.

Entries that are in a 'excluded', 'deleted' or 'absent' state (and not scheduled for re-addition) are not returned in the hash, unless show_hidden is TRUE. Excluded entries are those with their depth set to svn_depth_exclude.

Important:
The entries hash is the entries cache in adm_access and so usually the hash itself, the keys and the values should be treated as read-only. If any of these are modified then it is the caller's responsibility to ensure that the entries file on disk is updated. Treat the hash values as type (const svn_wc_entry_t *) if you wish to avoid accidental modification. Modifying the schedule member is a particularly bad idea, as the entries writing process relies on having access to the original schedule. Use a duplicate entry to modify the schedule.
Important:
Only the entry structures representing files and SVN_WC_ENTRY_THIS_DIR contain complete information. The entry structures representing subdirs have only the `kind' and `state' fields filled in. If you want info on a subdir, you must use this routine to open its path and read the SVN_WC_ENTRY_THIS_DIR structure, or call svn_wc_entry() on its path.
svn_error_t* svn_wc_entry ( const svn_wc_entry_t **  entry,
const char *  path,
svn_wc_adm_access_t adm_access,
svn_boolean_t  show_hidden,
apr_pool_t *  pool 
)

Set *entry to an entry for path, allocated in the access baton pool.

If show_hidden is TRUE, return the entry even if it's in 'excluded', 'deleted' or 'absent' state. Excluded entries are those with their depth set to svn_depth_exclude. If path is not under revision control, or if entry is hidden, not scheduled for re-addition, and show_hidden is FALSE, then set *entry to NULL.

*entry should not be modified, since doing so modifies the entries cache in adm_access without changing the entries file on disk.

If path is not a directory then adm_access must be an access baton for the parent directory of path. To avoid needing to know whether path is a directory or not, if path is a directory adm_access can still be an access baton for the parent of path so long as the access baton for path itself is in the same access baton set.

path can be relative or absolute but must share the same base used to open adm_access.

Note that it is possible for path to be absent from disk but still under revision control; and conversely, it is possible for path to be present, but not under revision control.

Use pool only for local processing.

svn_wc_entry_t* svn_wc_entry_dup ( const svn_wc_entry_t entry,
apr_pool_t *  pool 
)

Return a duplicate of entry, allocated in pool.

No part of the new entry will be shared with entry.

svn_wc_external_item2_t* svn_wc_external_item2_dup ( const svn_wc_external_item2_t item,
apr_pool_t *  pool 
)

Return a duplicate of item, allocated in pool.

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

Since:
New in 1.5.
svn_error_t* svn_wc_external_item_create ( const svn_wc_external_item2_t **  item,
apr_pool_t *  pool 
)

Initialize an external item.

Set *item to an external item object, allocated in pool.

In order to avoid backwards compatibility problems, this function is used to initialize and allocate the svn_wc_external_item2_t structure rather than doing so explicitly, as the size of this structure may change in the future.

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

Since:
New in 1.5.
svn_wc_external_item_t* svn_wc_external_item_dup ( const svn_wc_external_item_t item,
apr_pool_t *  pool 
)

Return a duplicate of item, allocated in pool.

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

Since:
New in 1.3.
Deprecated:
Provided for backward compatibility with the 1.4 API.
svn_error_t* svn_wc_get_actual_target ( const char *  path,
const char **  anchor,
const char **  target,
apr_pool_t *  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 pool.

const char* svn_wc_get_adm_dir ( apr_pool_t *  pool)

Return the name of the administrative directory.

Use pool for any temporary allocations.

The returned pointer will refer to either a statically allocated string, or to a string allocated in pool.

Since:
New in 1.3.
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).

svn_error_t* svn_wc_get_default_ignores ( apr_array_header_t **  patterns,
apr_hash_t *  config,
apr_pool_t *  pool 
)

Get the run-time configured list of ignore patterns from the svn_config_t's in the config hash, and store them in *patterns.

Allocate *patterns and its contents in pool.

svn_error_t* svn_wc_get_diff_editor ( svn_wc_adm_access_t anchor,
const char *  target,
const svn_wc_diff_callbacks_t callbacks,
void *  callback_baton,
svn_boolean_t  recurse,
svn_boolean_t  use_text_base,
svn_boolean_t  reverse_order,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
const svn_delta_editor_t **  editor,
void **  edit_baton,
apr_pool_t *  pool 
)

Similar to svn_wc_get_diff_editor2(), but with ignore_ancestry always set to FALSE.

Deprecated:
Provided for backward compatibility with the 1.0 API.
svn_error_t* svn_wc_get_diff_editor2 ( svn_wc_adm_access_t anchor,
const char *  target,
const svn_wc_diff_callbacks_t callbacks,
void *  callback_baton,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  use_text_base,
svn_boolean_t  reverse_order,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
const svn_delta_editor_t **  editor,
void **  edit_baton,
apr_pool_t *  pool 
)

Similar to svn_wc_get_diff_editor3(), but with an svn_wc_diff_callbacks_t instead of svn_wc_diff_callbacks2_t.

Deprecated:
Provided for backward compatibility with the 1.1 API.
svn_error_t* svn_wc_get_diff_editor3 ( svn_wc_adm_access_t anchor,
const char *  target,
const svn_wc_diff_callbacks2_t callbacks,
void *  callback_baton,
svn_boolean_t  recurse,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  use_text_base,
svn_boolean_t  reverse_order,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
const svn_delta_editor_t **  editor,
void **  edit_baton,
apr_pool_t *  pool 
)

Similar to svn_wc_get_diff_editor4(), but with changelists passed as NULL, and depth set to svn_depth_infinity if recurse is TRUE, or svn_depth_files if recurse is FALSE.

Deprecated:
Provided for backward compatibility with the 1.4 API.
Since:
New in 1.2.
svn_error_t* svn_wc_get_diff_editor4 ( svn_wc_adm_access_t anchor,
const char *  target,
const svn_wc_diff_callbacks2_t callbacks,
void *  callback_baton,
svn_depth_t  depth,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  use_text_base,
svn_boolean_t  reverse_order,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
const apr_array_header_t *  changelists,
const svn_delta_editor_t **  editor,
void **  edit_baton,
apr_pool_t *  pool 
)

Similar to svn_wc_get_diff_editor5(), but with an svn_wc_diff_callbacks2_t instead of svn_wc_diff_callbacks3_t.

Deprecated:
Provided for backward compatibility with the 1.5 API.
svn_error_t* svn_wc_get_diff_editor5 ( svn_wc_adm_access_t anchor,
const char *  target,
const svn_wc_diff_callbacks3_t callbacks,
void *  callback_baton,
svn_depth_t  depth,
svn_boolean_t  ignore_ancestry,
svn_boolean_t  use_text_base,
svn_boolean_t  reverse_order,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
const apr_array_header_t *  changelists,
const svn_delta_editor_t **  editor,
void **  edit_baton,
apr_pool_t *  pool 
)

Return an editor/edit_baton for diffing a working copy against the repository.

anchor/target represent the base of the hierarchy to be compared.

callbacks/callback_baton is the callback table to use when two files are to be compared.

If depth is svn_depth_empty, just diff exactly target or anchor if target is empty. If svn_depth_files then do the same and for top-level file entries as well (if any). If svn_depth_immediates, do the same as svn_depth_files but also diff top-level subdirectories at svn_depth_empty. If svn_depth_infinity, then diff fully recursively. In the latter case, anchor should be part of an access baton set for the target hierarchy.

ignore_ancestry determines whether paths that have discontinuous node ancestry are treated as delete/add or as simple modifications. If ignore_ancestry is FALSE, then any discontinuous node ancestry will result in the diff given as a full delete followed by an add.

If use_text_base is TRUE, then compare the repository against the working copy's text-base files, rather than the working files.

Normally, the difference from repository->working_copy is shown. If reverse_order is TRUE, then show working_copy->repository diffs.

If cancel_func is non-NULL, it will be used along with cancel_baton to periodically check if the client has canceled the operation.

changelists is an array of const char * changelist names, used as a restrictive filter on items whose differences are reported; that is, don't generate diffs about any item unless it's a member of one of those changelists. If changelists is empty (or altogether NULL), no changelist filtering occurs.

Since:
New in 1.6.
svn_error_t* svn_wc_get_ignores ( apr_array_header_t **  patterns,
apr_hash_t *  config,
svn_wc_adm_access_t adm_access,
apr_pool_t *  pool 
)

Get the list of ignore patterns from the svn_config_t's in the config hash and the local ignore patterns from the directory in adm_access, and store them in *patterns.

Allocate *patterns and its contents in pool.

Since:
New in 1.3.
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 
)

Given a path to a wc file, return a stream to the contents of the pristine copy of the file.

This is needed so clients can do diffs. If the WC has no text-base, return a NULL instead of a stream.

Since:
New in 1.6.
svn_error_t* svn_wc_get_pristine_copy_path ( const char *  path,
const char **  pristine_path,
apr_pool_t *  pool 
)

Returns a path to the pristine copy of path.

Should use svn_wc_get_pristine_contents() instead.

Deprecated:
Provided for backwards compatibility with the 1.5 API.
svn_error_t* svn_wc_get_prop_diffs ( apr_array_header_t **  propchanges,
apr_hash_t **  original_props,
const char *  path,
svn_wc_adm_access_t adm_access,
apr_pool_t *  pool 
)

Given a path to a file or directory under version control, discover any local changes made to properties and/or the set of 'pristine' properties.

adm_access is an access baton set for path.

If propchanges is non-NULL, return these changes as an array of svn_prop_t structures stored in *propchanges. The structures and array will be allocated in pool. If there are no local property modifications on path, then set *propchanges to NULL.

If original_props is non-NULL, then set *original_props to hashtable (const char *name -> const svn_string_t *value) that represents the 'pristine' property list of path. This hashtable is allocated in pool, and can be used to compare old and new values of properties.

svn_error_t* svn_wc_get_switch_editor ( svn_revnum_t target_revision,
svn_wc_adm_access_t anchor,
const char *  target,
const char *  switch_url,
svn_boolean_t  use_commit_times,
svn_boolean_t  recurse,
svn_wc_notify_func_t  notify_func,
void *  notify_baton,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
const char *  diff3_cmd,
const svn_delta_editor_t **  editor,
void **  edit_baton,
svn_wc_traversal_info_t ti,
apr_pool_t *  pool 
)

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

Deprecated:
Provided for backward compatibility with the 1.1 API.
svn_error_t* svn_wc_get_switch_editor2 ( svn_revnum_t target_revision,
svn_wc_adm_access_t anchor,
const char *  target,
const char *  switch_url,
svn_boolean_t  use_commit_times,
svn_boolean_t  recurse,
svn_wc_notify_func2_t  notify_func,
void *  notify_baton,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
const char *  diff3_cmd,
const svn_delta_editor_t **  editor,
void **  edit_baton,
svn_wc_traversal_info_t ti,
apr_pool_t *  pool 
)

Similar to svn_wc_get_switch_editor3() but with the allow_unver_obstructions parameter always set to FALSE, preserved_exts set to NULL, conflict_func and baton set to NULL, depth_is_sticky set to FALSE, and depth set according to recurse: if recurse is TRUE, pass svn_depth_infinity, if FALSE, pass svn_depth_files.

Deprecated:
Provided for backward compatibility with the 1.4 API.
svn_error_t* svn_wc_get_switch_editor3 ( svn_revnum_t target_revision,
svn_wc_adm_access_t anchor,
const char *  target,
const char *  switch_url,
svn_boolean_t  use_commit_times,
svn_depth_t  depth,
svn_boolean_t  depth_is_sticky,
svn_boolean_t  allow_unver_obstructions,
svn_wc_notify_func2_t  notify_func,
void *  notify_baton,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
svn_wc_conflict_resolver_func_t  conflict_func,
void *  conflict_baton,
const char *  diff3_cmd,
apr_array_header_t *  preserved_exts,
const svn_delta_editor_t **  editor,
void **  edit_baton,
svn_wc_traversal_info_t ti,
apr_pool_t *  pool 
)

A variant of svn_wc_get_update_editor().

Set *editor and *edit_baton to an editor and baton for "switching" a working copy to a new switch_url. (Right now, this URL must be within the same repository that the working copy already comes from.) switch_url must not be NULL.

If ti is non-NULL, record traversal info in ti, for use by post-traversal accessors such as svn_wc_edited_externals().

anchor is an access baton, with a write lock, for the local path to the working copy which will be used as the root of our editor. Further locks will be acquired if the switch creates new directories. All locks, both those in anchor and newly acquired ones, will be released when the editor driver calls close_edit.

target is the entry in anchor that will actually be updated, or empty if all of anchor should be updated.

The editor invokes notify_func with notify_baton as the switch progresses, if notify_func is non-NULL.

If cancel_func is non-NULL, it will be called with cancel_baton as the switch progresses to determine if it should continue.

If conflict_func is non-NULL, then invoke it with conflict_baton whenever a conflict is encountered, giving the callback a chance to resolve the conflict before the editor takes more drastic measures (such as marking a file conflicted, or bailing out of the switch).

If diff3_cmd is non-NULL, then use it as the diff3 command for any merging; otherwise, use the built-in merge code.

preserved_exts is an array of filename patterns which, when matched against the extensions of versioned files, determine for which such files any related generated conflict files will preserve the original file's extension as their own. If a file's extension does not match any of the patterns in preserved_exts (which is certainly the case if preserved_exts is NULL or empty), generated conflict files will carry Subversion's custom extensions.

target_revision is a pointer to a revision location which, after successful completion of the drive of this editor, will be populated with the revision to which the working copy was updated.

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

depth and depth_is_sticky behave as for svn_wc_get_update_editor3().

If allow_unver_obstructions is TRUE, then allow unversioned obstructions when adding a path.

Since:
New in 1.5.
svn_error_t* svn_wc_get_update_editor ( svn_revnum_t target_revision,
svn_wc_adm_access_t anchor,
const char *  target,
svn_boolean_t  use_commit_times,
svn_boolean_t  recurse,
svn_wc_notify_func_t  notify_func,
void *  notify_baton,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
const char *  diff3_cmd,
const svn_delta_editor_t **  editor,
void **  edit_baton,
svn_wc_traversal_info_t ti,
apr_pool_t *  pool 
)

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

Deprecated:
Provided for backward compatibility with the 1.1 API.
svn_error_t* svn_wc_get_update_editor2 ( svn_revnum_t target_revision,
svn_wc_adm_access_t anchor,
const char *  target,
svn_boolean_t  use_commit_times,
svn_boolean_t  recurse,
svn_wc_notify_func2_t  notify_func,
void *  notify_baton,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
const char *  diff3_cmd,
const svn_delta_editor_t **  editor,
void **  edit_baton,
svn_wc_traversal_info_t ti,
apr_pool_t *  pool 
)

Similar to svn_wc_get_update_editor3() but with the allow_unver_obstructions parameter always set to FALSE, conflict_func and baton set to NULL, fetch_func and baton set to NULL, preserved_exts set to NULL, depth_is_sticky set to FALSE, and depth set according to recurse: if recurse is TRUE, pass svn_depth_infinity, if FALSE, pass svn_depth_files.

Deprecated:
Provided for backward compatibility with the 1.4 API.
svn_error_t* svn_wc_get_update_editor3 ( svn_revnum_t target_revision,
svn_wc_adm_access_t anchor,
const char *  target,
svn_boolean_t  use_commit_times,
svn_depth_t  depth,
svn_boolean_t  depth_is_sticky,
svn_boolean_t  allow_unver_obstructions,
svn_wc_notify_func2_t  notify_func,
void *  notify_baton,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
svn_wc_conflict_resolver_func_t  conflict_func,
void *  conflict_baton,
svn_wc_get_file_t  fetch_func,
void *  fetch_baton,
const char *  diff3_cmd,
apr_array_header_t *  preserved_exts,
const svn_delta_editor_t **  editor,
void **  edit_baton,
svn_wc_traversal_info_t ti,
apr_pool_t *  pool 
)

Set *editor and *edit_baton to an editor and baton for updating a working copy.

If ti is non-NULL, record traversal info in ti, for use by post-traversal accessors such as svn_wc_edited_externals().

anchor is an access baton, with a write lock, for the local path to the working copy which will be used as the root of our editor. Further locks will be acquired if the update creates new directories. All locks, both those in anchor and newly acquired ones, will be released when the editor driver calls close_edit.

target is the entry in anchor that will actually be updated, or the empty string if all of anchor should be updated.

The editor invokes notify_func with notify_baton as the update progresses, if notify_func is non-NULL.

If cancel_func is non-NULL, the editor will invoke cancel_func with cancel_baton as the update progresses to see if it should continue.

If conflict_func is non-NULL, then invoke it with conflict_baton whenever a conflict is encountered, giving the callback a chance to resolve the conflict before the editor takes more drastic measures (such as marking a file conflicted, or bailing out of the update).

If fetch_func is non-NULL, then use it (with fetch_baton) as a fallback for retrieving repository files whenever 'copyfrom' args are sent into editor->add_file().

If diff3_cmd is non-NULL, then use it as the diff3 command for any merging; otherwise, use the built-in merge code.

preserved_exts is an array of filename patterns which, when matched against the extensions of versioned files, determine for which such files any related generated conflict files will preserve the original file's extension as their own. If a file's extension does not match any of the patterns in preserved_exts (which is certainly the case if preserved_exts is NULL or empty), generated conflict files will carry Subversion's custom extensions.

target_revision is a pointer to a revision location which, after successful completion of the drive of this editor, will be populated with the revision to which the working copy was updated.

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

If allow_unver_obstructions is TRUE, then allow unversioned obstructions when adding a path.

If depth is svn_depth_infinity, update fully recursively. Else if it is svn_depth_immediates, update the uppermost directory, its file entries, and the presence or absence of subdirectories (but do not descend into the subdirectories). Else if it is svn_depth_files, update the uppermost directory and its immediate file entries, but not subdirectories. Else if it is svn_depth_empty, update exactly the uppermost target, and don't touch its entries.

If depth_is_sticky is set and depth is not svn_depth_unknown, then in addition to updating PATHS, also set their sticky ambient depth value to depth.

Since:
New in 1.5.
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.

svn_wc_traversal_info_t* svn_wc_init_traversal_info ( apr_pool_t *  pool)

Return a new, empty traversal info object, allocated in pool.

svn_boolean_t svn_wc_is_adm_dir ( const char *  name,
apr_pool_t *  pool 
)

Return TRUE if name is the name of the WC administrative directory.

Use pool for any temporary allocations. Only works with base directory names, not paths or URIs.

For compatibility, the default name (.svn) will always be treated as an admin dir name, even if the working copy is actually using an alternative name.

Since:
New in 1.3.
svn_boolean_t svn_wc_is_entry_prop ( const char *  name)

Return TRUE iff name is a 'entry' property name.

svn_boolean_t svn_wc_is_normal_prop ( const char *  name)

Return TRUE iff name is a 'normal' property name.

'Normal' is defined as a user-visible and user-tweakable property that shows up when you fetch a proplist.

The function currently parses the namespace like so:

  • 'svn:wc:' ==> a wcprop, stored/accessed separately via different API.
  • 'svn:entry:' ==> an "entry" prop, shunted into the 'entries' file.

If these patterns aren't found, then the property is assumed to be Normal.

svn_boolean_t svn_wc_is_wc_prop ( const char *  name)

Return TRUE iff name is a 'wc' property name.

svn_error_t* svn_wc_is_wc_root ( svn_boolean_t wc_root,
const char *  path,
svn_wc_adm_access_t adm_access,
apr_pool_t *  pool 
)

Set *wc_root to TRUE if path represents a "working copy root", FALSE otherwise.

Here, path is a "working copy root" if its parent directory is not a WC or if its parent directory's repository URL is not the parent of its own repository URL. Thus, a switched subtree is considered to be a working copy root. Also, a deleted tree-conflict victim is considered a "working copy root" because it has no URL.

If path is not found, return the error SVN_ERR_ENTRY_NOT_FOUND.

Use pool for any intermediate allocations.

Note:
Due to the way in which "WC-root-ness" is calculated, passing a path of `.' to this function will always return TRUE.
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_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.

Return SVN_ERR_WC_PATH_FOUND if path isn't actually missing.

svn_boolean_t svn_wc_match_ignore_list ( const char *  str,
apr_array_header_t *  list,
apr_pool_t *  pool 
)

Return TRUE iff str matches any of the elements of list, a list of zero or more ignore patterns.

Since:
New in 1.5.
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.

adm_access must contain path and be write-locked, if path is versioned. Return no error if path is missing or unversioned. Use pool for temporary allocations.

Note:
In some circumstances, the repository root can't be set without making the working copy corrupt. In such cases, this function just returns no error, without modifying the path entry.
This function exists to make it possible to try to set the repository root in old working copies; new working copies normally get this set at creation time.
Since:
New in 1.3.
svn_error_t* svn_wc_merge ( const char *  left,
const char *  right,
const char *  merge_target,
svn_wc_adm_access_t adm_access,
const char *  left_label,
const char *  right_label,
const char *  target_label,
svn_boolean_t  dry_run,
enum svn_wc_merge_outcome_t merge_outcome,
const char *  diff3_cmd,
apr_pool_t *  pool 
)

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

Deprecated:
Provided for backwards compatibility with the 1.3 API.
svn_error_t* svn_wc_merge2 ( enum svn_wc_merge_outcome_t merge_outcome,
const char *  left,
const char *  right,
const char *  merge_target,
svn_wc_adm_access_t adm_access,
const char *  left_label,
const char *  right_label,
const char *  target_label,
svn_boolean_t  dry_run,
const char *  diff3_cmd,
const apr_array_header_t *  merge_options,
apr_pool_t *  pool 
)

Similar to svn_wc_merge3(), but with prop_diff, conflict_func, conflict_baton set to NULL.

Deprecated:
Provided for backwards compatibility with the 1.4 API.
svn_error_t* svn_wc_merge3 ( enum svn_wc_merge_outcome_t merge_outcome,
const char *  left,
const char *  right,
const char *  merge_target,
svn_wc_adm_access_t adm_access,
const char *  left_label,
const char *  right_label,
const char *  target_label,
svn_boolean_t  dry_run,
const char *  diff3_cmd,
const apr_array_header_t *  merge_options,
const apr_array_header_t *  prop_diff,
svn_wc_conflict_resolver_func_t  conflict_func,
void *  conflict_baton,
apr_pool_t *  pool 
)

Given paths to three fulltexts, merge the differences between left and right into merge_target.

(It may help to know that left, right, and merge_target correspond to "OLDER", "YOURS", and "MINE", respectively, in the diff3 documentation.) Use pool for any temporary allocation.

adm_access is an access baton with a write lock for the directory containing merge_target.

This function assumes that left and right are in repository-normal form (linefeeds, with keywords contracted); if necessary, merge_target is temporarily converted to this form to receive the changes, then translated back again.

If merge_target is absent, or present but not under version control, then set *merge_outcome to svn_wc_merge_no_merge and return success without merging anything. (The reasoning is that if the file is not versioned, then it is probably unrelated to the changes being considered, so they should not be merged into it.)

dry_run determines whether the working copy is modified. When it is FALSE the merge will cause merge_target to be modified, when it is TRUE the merge will be carried out to determine the result but merge_target will not be modified.

If diff3_cmd is non-NULL, then use it as the diff3 command for any merging; otherwise, use the built-in merge code. If merge_options is non-NULL, either pass its elements to diff3_cmd or parse it and use as options to the internal merge code (see svn_diff_file_options_parse()). merge_options must contain const char * elements.

The outcome of the merge is returned in *merge_outcome. If there is a conflict and dry_run is FALSE, then attempt to call conflict_func with conflict_baton (if non-NULL). If the conflict callback cannot resolve the conflict, then:

* Put conflict markers around the conflicting regions in merge_target, labeled with left_label, right_label, and target_label. (If any of these labels are NULL, default values will be used.)

* Copy left, right, and the original merge_target to unique names in the same directory as merge_target, ending with the suffixes ".LEFT_LABEL", ".RIGHT_LABEL", and ".TARGET_LABEL" respectively.

* Mark the entry for merge_target as "conflicted", and track the above mentioned backup files in the entry as well.

Binary case:

If merge_target is a binary file, then no merging is attempted, the merge is deemed to be a conflict. If dry_run is FALSE the working merge_target is untouched, and copies of left and right are created next to it using left_label and right_label. merge_target's entry is marked as "conflicted", and begins tracking the two backup files. If dry_run is TRUE no files are changed. The outcome of the merge is returned in *merge_outcome.

Since:
New in 1.5.
svn_error_t* svn_wc_merge_prop_diffs ( svn_wc_notify_state_t state,
const char *  path,
svn_wc_adm_access_t adm_access,
const apr_array_header_t *  propchanges,
svn_boolean_t  base_merge,
svn_boolean_t  dry_run,
apr_pool_t *  pool 
)

Similar to svn_wc_merge_props(), but no baseprops are given.

Instead, it's assumed that the incoming propchanges are based against the working copy's own baseprops. While this assumption is correct for 'svn update', it's incorrect for 'svn merge', and can cause flawed behavior. (See issue #2035.)

Deprecated:
Provided for backward compatibility with the 1.2 API.
svn_error_t* svn_wc_merge_props ( svn_wc_notify_state_t state,
const char *  path,
svn_wc_adm_access_t adm_access,
apr_hash_t *  baseprops,
const apr_array_header_t *  propchanges,
svn_boolean_t  base_merge,
svn_boolean_t  dry_run,
apr_pool_t *  pool 
)

Same as svn_wc_merge_props2(), but with a conflict_func (and baton) of NULL.

Deprecated:
Provided for backward compatibility with the 1.3 API.
svn_error_t* svn_wc_merge_props2 ( svn_wc_notify_state_t state,
const char *  path,
svn_wc_adm_access_t adm_access,
apr_hash_t *  baseprops,
const apr_array_header_t *  propchanges,
svn_boolean_t  base_merge,
svn_boolean_t  dry_run,
svn_wc_conflict_resolver_func_t  conflict_func,
void *  conflict_baton,
apr_pool_t *  pool 
)

Given a path under version control, merge an array of propchanges into the path's existing properties.

propchanges is an array of svn_prop_t objects, and baseprops is a hash representing the original set of properties that propchanges is working against. adm_access is an access baton for the directory containing path.

If base_merge is FALSE only the working properties will be changed, if it is TRUE both the base and working properties will be changed.

If state is non-NULL, set *state to the state of the properties after the merge.

If conflicts are found when merging working properties, they are described in a temporary .prej file (or appended to an already-existing .prej file), and the entry is marked "conflicted". Base properties are changed unconditionally, if base_merge is TRUE, they never result in a conflict.

If path is not under version control, return the error SVN_ERR_UNVERSIONED_RESOURCE and don't touch anyone's properties.

Since:
New in 1.5.
svn_error_t* svn_wc_parse_externals_description ( apr_hash_t **  externals_p,
const char *  parent_directory,
const char *  desc,
apr_pool_t *  pool 
)

Similar to svn_wc_parse_externals_description2(), but returns the parsed externals in a hash instead of an array.

This function should not be used, as storing the externals in a hash causes their order of evaluation to be not easily identifiable.

Deprecated:
Provided for backward compatibility with the 1.0 API.
svn_error_t* svn_wc_parse_externals_description2 ( apr_array_header_t **  externals_p,
const char *  parent_directory,
const char *  desc,
apr_pool_t *  pool 
)

Similar to svn_wc_parse_externals_description3() with canonicalize_url set to TRUE, but returns an array of svn_wc_external_item_t * objects instead of svn_wc_external_item2_t * objects.

Since:
New in 1.1.
Deprecated:
Provided for backward compatibility with the 1.4 API.
svn_error_t* svn_wc_parse_externals_description3 ( apr_array_header_t **  externals_p,
const char *  parent_directory,
const char *  desc,
svn_boolean_t  canonicalize_url,
apr_pool_t *  pool 
)

If externals_p is non-NULL, set *externals_p to an array of svn_wc_external_item2_t * objects based on desc.

The url member of the objects will be canonicalized if canonicalize_url is TRUE.

If the format of desc is invalid, don't touch *externals_p and return SVN_ERR_CLIENT_INVALID_EXTERNALS_DESCRIPTION. Thus, if you just want to check the validity of an externals description, and don't care about the parsed result, pass NULL for externals_p.

The format of desc is the same as for values of the directory property SVN_PROP_EXTERNALS, which see.

Allocate the table, keys, and values in pool.

Use parent_directory only in constructing error strings.

Since:
New in 1.5.
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,
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,
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,
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,
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 
)

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.

adm_access must be associated with all affected directories, and must hold a write lock in each one.

Since:
New in 1.5.
svn_error_t* svn_wc_prop_get ( const svn_string_t **  value,
const char *  name,
const char *  path,
svn_wc_adm_access_t adm_access,
apr_pool_t *  pool 
)

Set *value to the value of property name for path, allocating *value in pool.

If no such prop, set *value to NULL. name may be a regular or wc property; if it is an entry property, return the error SVN_ERR_BAD_PROP_KIND. adm_access is an access baton set that contains path.

svn_error_t* svn_wc_prop_list ( apr_hash_t **  props,
const char *  path,
svn_wc_adm_access_t adm_access,
apr_pool_t *  pool 
)

Set *props to a hash table mapping char * names onto svn_string_t * values for all the regular properties of path.

Allocate the table, names, and values in pool. If the node has no properties, or does not exist in the working copy, then an empty hash is returned. adm_access is an access baton set that contains path.

svn_error_t* svn_wc_prop_set ( const char *  name,
const svn_string_t value,
const char *  path,
svn_wc_adm_access_t adm_access,
apr_pool_t *  pool 
)

Like svn_wc_prop_set2(), but with skip_checks always FALSE.

Deprecated:
Provided for backward compatibility with the 1.1 API.
svn_error_t* svn_wc_prop_set2 ( const char *  name,
const svn_string_t value,
const char *  path,
svn_wc_adm_access_t adm_access,
svn_boolean_t  skip_checks,
apr_pool_t *  pool 
)

Like svn_wc_prop_set3(), but without the notification callbacks.

Since:
New in 1.2.
svn_error_t* svn_wc_prop_set3 ( const char *  name,
const svn_string_t value,
const char *  path,
svn_wc_adm_access_t adm_access,
svn_boolean_t  skip_checks,
svn_wc_notify_func2_t  notify_func,
void *  notify_baton,
apr_pool_t *  pool 
)

Set property name to value for path, or if value is NULL, remove property name from path.

adm_access is an access baton with a write lock for path.

If skip_checks is TRUE, do no validity checking. But if skip_checks is FALSE, and name is not a valid property for path, return an error, either SVN_ERR_ILLEGAL_TARGET (if the property is not appropriate for path), or SVN_ERR_BAD_MIME_TYPE (if name is "svn:mime-type", but value is not a valid mime-type).

name may be a wc property or a regular property; but if it is an entry property, return the error SVN_ERR_BAD_PROP_KIND, even if skip_checks is TRUE.

For each file or directory operated on, notify_func will be called with its path and the notify_baton. notify_func may be NULL if you are not interested in this information.

Use pool for temporary allocation.

Since:
New in 1.6.
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 
)

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.

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,
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,
apr_array_header_t *  wcprop_changes,
svn_boolean_t  remove_lock,
svn_boolean_t  remove_changelist,
svn_checksum_t checksum,
apr_pool_t *  scratch_pool 
)

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

All pointer data passed to this function (path, adm_access, wcprop_changes and checksum) should remain valid until the queue has been processed by svn_wc_process_committed_queue().

Record in queue that path will need to be bumped after a commit succeeds. adm_access must hold a write lock appropriate for path.

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.

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 path is a file and checksum is non-NULL, use checksum as the checksum for the new text base. Otherwise, calculate the checksum if needed.

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

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

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.
Since:
New in 1.6.
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.

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 
)

Change repository references at path that begin with from to begin with to instead.

Perform necessary allocations in pool. If recurse is TRUE, do so. validator (and its baton, validator_baton), will be called for each newly generated URL.

adm_access is an access baton for the directory containing path.

Since:
New in 1.5.
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 
)

Remove entry name in adm_access from revision control.

name must be either a file or SVN_WC_ENTRY_THIS_DIR. adm_access must hold a write lock.

If name is a file, all its info will be removed from adm_access's administrative directory. If name is SVN_WC_ENTRY_THIS_DIR, then adm_access's entire 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.

svn_error_t* svn_wc_remove_lock ( const char *  path,
svn_wc_adm_access_t adm_access,
apr_pool_t *  pool 
)

Remove any lock from path.

adm_access must contain a write-lock for path. If path has a lock and the locking so specifies, make the file read-only. Don't return an error if path didn't have a lock. Perform temporary allocations in pool.

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.0 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.

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.

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 
)

Assuming path is under version control and in a state of conflict, then take path *out* of this state.

If resolve_text is TRUE then any text conflict is resolved, if resolve_props is TRUE then any property conflicts are resolved, if resolve_tree is TRUE then any tree conflicts are resolved.

If depth is svn_depth_empty, act only on path; if svn_depth_files, resolve path and its conflicted file children (if any); if svn_depth_immediates, resolve path and all its immediate conflicted children (both files and directories, if any); if svn_depth_infinity, resolve path 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.

adm_access is an access baton, with a write lock, for path.

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 path's entry.)

If path is not under version control, 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 path 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.

Since:
New in 1.6.
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 changelists 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.
Deprecated:
Provided for backward compatibility with the 1.2 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 *  changelists,
svn_cancel_func_t  cancel_func,
void *  cancel_baton,
svn_wc_notify_func2_t  notify_func,
void *  notify_baton,
apr_pool_t *  pool 
)

Revert changes to path.

Perform necessary allocations in pool.

parent_access is an access baton for the directory containing path, unless path is a working copy root (as determined by svn_wc_is_wc_root), in which case parent_access refers to path itself.

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.

changelists 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 changelists 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.5.
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 
)

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 wc_path (not including "externals").

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 wc_path itself is switched. It should be any trailing portion of wc_path'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 wc_path'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 cancelled the operation.

Allocate *result_p in pool.

Since:
New in 1.4
svn_error_t* svn_wc_set_adm_dir ( const char *  name,
apr_pool_t *  pool 
)

Use name for the administrative directory in the working copy.

Use pool for any temporary allocations.

The list of valid names is limited. Currently only ".svn" (the default) and "_svn" are allowed.

Note:
This function changes global (per-process) state and must be called in a single-threaded context during the initialization of a Subversion client.
Since:
New in 1.3.
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 
)

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

changelist may not be the empty string. adm_access is an access baton set that contains path.

If cancel_func is not NULL, call it with cancel_baton to determine if the client has cancelled 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).

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 path is a directory, return SVN_ERR_UNSUPPORTED_FEATURE.
This metadata is purely a client-side "bookkeeping" convenience, and is entirely managed by the working copy.
Since:
New in 1.5.
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 
)

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

filename is a path to the file, not just a basename. adm_access must be an access baton for filename.

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 filename 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.

If filename is unmodified but has a timestamp variation then this function may "repair" filename's text-time by setting it to filename's last modification time.

svn_error_t* svn_wc_translated_file ( const char **  xlated_p,
const char *  vfile,
svn_wc_adm_access_t adm_access,
svn_boolean_t  force_repair,
apr_pool_t *  pool 
)

Same as svn_wc_translated_file2, but will never clean up temporary files.

Deprecated:
Provided for compatibility with the 1.3 API
svn_error_t* svn_wc_translated_file2 ( const char **  xlated_path,
const char *  src,
const char *  versioned_file,
svn_wc_adm_access_t adm_access,
apr_uint32_t  flags,
apr_pool_t *  pool 
)

Set xlated_path to a translated copy of src or to src itself if no translation is necessary.

That is, if versioned_file's properties indicate newline conversion or keyword expansion, point *xlated_path to a copy of src whose newlines and keywords are converted using the translation as requested by flags.

When translating to the normal form, inconsistent eol styles will be repaired when appropriate for the given setting. When translating from normal form, no EOL repair is performed (consistency is assumed). This behaviour can be overridden by specifying SVN_WC_TRANSLATE_FORCE_EOL_REPAIR.

The caller can explicitly request a new file to be returned by setting the SVN_WC_TRANSLATE_FORCE_COPY flag in flags.

This function is generally used to get a file that can be compared meaningfully against versioned_file's text base, if SVN_WC_TRANSLATE_TO_NF is specified, against versioned_file itself if SVN_WC_TRANSLATE_FROM_NF is specified.

Output files are created in the temp file area belonging to versioned_file. By default they will be deleted at pool cleanup.

If SVN_WC_TRANSLATE_NO_OUTPUT_CLEANUP is specified, the default pool cleanup handler to remove *xlated_path is not registered.

If an error is returned, the effect on *xlated_path is undefined.

Since:
New in 1.4
svn_error_t* svn_wc_translated_stream ( svn_stream_t **  stream,
const char *  path,
const char *  versioned_file,
svn_wc_adm_access_t adm_access,
apr_uint32_t  flags,
apr_pool_t *  pool 
)

Returns a stream allocated in pool with access to the given path taking the file properties from versioned_file using adm_access.

When translation from normal form is requested (SVN_WC_TRANSLATE_FROM_NF is specified in flags), path is used as target path and stream read operations are not supported. Conversely, if translation to normal form is requested (SVN_WC_TRANSLATE_TO_NF is specified in flags), path is used as source path and stream write operations are not supported.

The flags are the same constants as those used for svn_wc_translated_file().

Since:
New in 1.5.
svn_error_t* svn_wc_transmit_prop_deltas ( const char *  path,
svn_wc_adm_access_t adm_access,
const svn_wc_entry_t entry,
const svn_delta_editor_t editor,
void *  baton,
const char **  tempfile,
apr_pool_t *  pool 
)

Given a path with its accompanying entry, transmit all local property modifications using the appropriate editor method (in conjunction with baton).

adm_access is an access baton set that contains path. Use pool for all allocations.

If a temporary file remains after this function is finished, the path to that file is returned in *tempfile (so the caller can clean this up if it wishes to do so).

Note:
Starting version 1.5, no tempfile will ever be returned anymore. If *tempfile is passed, its value is set to NULL.
svn_error_t* svn_wc_transmit_text_deltas ( const char *  path,
svn_wc_adm_access_t adm_access,
svn_boolean_t  fulltext,
const svn_delta_editor_t editor,
void *  file_baton,
const char **  tempfile,
apr_pool_t *  pool 
)

Similar to svn_wc_transmit_text_deltas2(), but with digest set to NULL.

Deprecated:
Provided for backwards compatibility with the 1.3 API.
svn_error_t* svn_wc_transmit_text_deltas2 ( const char **  tempfile,
unsigned char  digest[],
const char *  path,
svn_wc_adm_access_t adm_access,
svn_boolean_t  fulltext,
const svn_delta_editor_t editor,
void *  file_baton,
apr_pool_t *  pool 
)

Send the local modifications for versioned file path (with matching file_baton) through editor, then close file_baton afterwards.

Use pool for any temporary allocation and adm_access as an access baton for path.

This process creates a copy of path with keywords and eol untranslated. If tempfile is non-NULL, set *tempfile to the path to this copy. Do not clean up the copy; caller can do that. If digest is non-NULL, put the MD5 checksum of the temporary file into digest, which must point to APR_MD5_DIGESTSIZE bytes of storage. (The purpose of handing back the tmp copy is that it is usually about to become the new text base anyway, but the installation of the new text base is outside the scope of this function.)

If fulltext, send the untranslated copy of path through editor as full-text; else send it as svndiff against the current text base.

If sending a diff, and the recorded checksum for path's text-base does not match the current actual checksum, then remove the tmp copy (and set *tempfile to NULL if appropriate), and return the error SVN_ERR_WC_CORRUPT_TEXT_BASE.

Note:
This is intended for use with both infix and postfix text-delta styled editor drivers.
Since:
New in 1.4.
void svn_wc_traversed_depths ( apr_hash_t **  depths,
svn_wc_traversal_info_t traversal_info 
)

Set *depths to a hash table mapping const char * directory names (directories traversed by traversal_info) to const char * values (the depths of those directories, as converted by svn_depth_to_word()).

traversal_info is obtained from svn_wc_init_traversal_info(), but is only useful after it has been passed through another function, such as svn_wc_crawl_revisions(), svn_wc_get_update_editor(), svn_wc_get_switch_editor(), etc.

The dir names are full paths -- that is, anchor plus target, not target alone. The values are not allocated, they are static constant strings. Although the values are never NULL, not all directories traversed are necessarily listed. For example, directories which did not have an svn:externals property set or modified are not included.

The hashes and keys have the same lifetime as traversal_info.

Since:
New in 1.5.
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.0 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.

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.

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 cancelled 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.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines