svn_wc.h File Reference

The Subversion Working Copy Library. More...

#include <apr.h>
#include <apr_pools.h>
#include <apr_tables.h>
#include <apr_hash.h>
#include "svn_types.h"
#include "svn_string.h"
#include "svn_delta.h"
#include "svn_error.h"
#include "svn_opt.h"
#include "svn_ra.h"

Go to the source code of this file.

Data Structures

struct  svn_wc_external_item_t
 One external item. More...
struct  svn_wc_notify_t
 Structure used in the svn_wc_notify_func2_t function. More...
struct  svn_wc_diff_callbacks2_t
 A callback vtable invoked by our diff-editors, as they receive diffs from the server. 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_callbacks_t
 A callback vtable invoked by the generic entry-walker function. More...
struct  svn_wc_status2_t
 Structure for holding the "status" of a working copy item. More...
struct  svn_wc_status_t
 Same as svn_wc_status2_t, but without the svn_lock_t 'repos_lock' field. More...

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 svn_wc_adm_access_t svn_wc_adm_access_t
 Baton for access to a working copy administrative area.
typedef svn_wc_traversal_info_t svn_wc_traversal_info_t
 Traversal information is information gathered by a working copy crawl or update.
typedef void(* svn_wc_notify_func2_t )(void *baton, const svn_wc_notify_t *notify, apr_pool_t *pool)
 Notify the world that notify->action has happened to notify->path.
typedef void(* svn_wc_notify_func_t )(void *baton, const char *path, svn_wc_notify_action_t action, svn_node_kind_t kind, const char *mime_type, svn_wc_notify_state_t content_state, svn_wc_notify_state_t prop_state, svn_revnum_t revision)
 Similar to svn_wc_notify_func2_t, but takes the information as arguments instead of struct fields.
typedef void(* svn_wc_status_func2_t )(void *baton, const char *path, svn_wc_status2_t *status)
 A callback for reporting a status about path.
typedef void(* svn_wc_status_func_t )(void *baton, const char *path, svn_wc_status_t *status)
 Same as svn_wc_status_func2_t(), but for older svn_wc_status_t structures.
typedef svn_error_t *(* svn_wc_relocation_validator_t )(void *baton, const char *uuid, const char *url)
 Relocation validation callback typedef.

Enumerations

enum  svn_wc_notify_action_t {
  svn_wc_notify_add = 0,
  svn_wc_notify_copy,
  svn_wc_notify_delete,
  svn_wc_notify_restore,
  svn_wc_notify_revert,
  svn_wc_notify_failed_revert,
  svn_wc_notify_resolved,
  svn_wc_notify_skip,
  svn_wc_notify_update_delete,
  svn_wc_notify_update_add,
  svn_wc_notify_update_update,
  svn_wc_notify_update_completed,
  svn_wc_notify_update_external,
  svn_wc_notify_status_completed,
  svn_wc_notify_status_external,
  svn_wc_notify_commit_modified,
  svn_wc_notify_commit_added,
  svn_wc_notify_commit_deleted,
  svn_wc_notify_commit_replaced,
  svn_wc_notify_commit_postfix_txdelta,
  svn_wc_notify_blame_revision,
  svn_wc_notify_locked,
  svn_wc_notify_unlocked,
  svn_wc_notify_failed_lock,
  svn_wc_notify_failed_unlock
}
 The type of action occurring. More...
enum  svn_wc_notify_state_t {
  svn_wc_notify_state_inapplicable = 0,
  svn_wc_notify_state_unknown,
  svn_wc_notify_state_unchanged,
  svn_wc_notify_state_missing,
  svn_wc_notify_state_obstructed,
  svn_wc_notify_state_changed,
  svn_wc_notify_state_merged,
  svn_wc_notify_state_conflicted
}
 The type of notification that is occurring. More...
enum  svn_wc_notify_lock_state_t {
  svn_wc_notify_lock_state_inapplicable = 0,
  svn_wc_notify_lock_state_unknown,
  svn_wc_notify_lock_state_unchanged,
  svn_wc_notify_lock_state_locked,
  svn_wc_notify_lock_state_unlocked
}
 What happened to a lock during an operation. More...
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_status_kind {
  svn_wc_status_none = 1,
  svn_wc_status_unversioned,
  svn_wc_status_normal,
  svn_wc_status_added,
  svn_wc_status_missing,
  svn_wc_status_deleted,
  svn_wc_status_replaced,
  svn_wc_status_modified,
  svn_wc_status_merged,
  svn_wc_status_conflicted,
  svn_wc_status_ignored,
  svn_wc_status_obstructed,
  svn_wc_status_external,
  svn_wc_status_incomplete
}
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

const svn_version_tsvn_wc_version (void)
 Get libsvn_wc version information.
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 depth, 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 depth, 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 depth.
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 depth, 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 depth, 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 depth.
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 depth, 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)
 Checks 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 depth, 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 depth, 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 depth.
svn_error_tsvn_wc_adm_close (svn_wc_adm_access_t *adm_access)
 Give up the access baton adm_access, and its lock if any.
const char * svn_wc_adm_access_path (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 (svn_wc_adm_access_t *adm_access)
 Return the pool used by access baton adm_access.
svn_boolean_t svn_wc_adm_locked (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.
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_description2 (apr_array_header_t **externals_p, const char *parent_directory, const char *desc, apr_pool_t *pool)
 If externals_p is non-null, set *externals_p to an array of svn_wc_external_item_t * objects based on desc.
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_wc_notify_tsvn_wc_create_notify (const char *path, svn_wc_notify_action_t action, apr_pool_t *pool)
 Allocate an svn_wc_notify_t structure in pool, initialize and return it.
svn_wc_notify_tsvn_wc_dup_notify (const svn_wc_notify_t *notify, apr_pool_t *pool)
 Return a deep copy of notify, allocated in pool.
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_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 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_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)
 A generic entry-walker.
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_adm2 (const char *path, const char *uuid, const char *url, const char *repos, svn_revnum_t revision, 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, and with repository UUID uuid and repository root URL repos.
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_wc_status2_tsvn_wc_dup_status2 (svn_wc_status2_t *orig_stat, apr_pool_t *pool)
 Return a deep copy of the orig_stat status structure, allocated in pool.
svn_wc_status_tsvn_wc_dup_status (svn_wc_status_t *orig_stat, apr_pool_t *pool)
 Same as svn_wc_dup_status2(), but for older svn_wc_status_t structures.
svn_error_tsvn_wc_status2 (svn_wc_status2_t **status, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
 Fill *status for path, allocating in pool.
svn_error_tsvn_wc_status (svn_wc_status_t **status, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool)
 Same as svn_wc_status2(), but for older svn_wc_status_t structures.
svn_error_tsvn_wc_get_status_editor2 (const svn_delta_editor_t **editor, void **edit_baton, void **set_locks_baton, svn_revnum_t *edit_revision, svn_wc_adm_access_t *anchor, const char *target, apr_hash_t *config, svn_boolean_t recurse, svn_boolean_t get_all, svn_boolean_t no_ignore, svn_wc_status_func2_t status_func, void *status_baton, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_traversal_info_t *traversal_info, apr_pool_t *pool)
 Set *editor and *edit_baton to an editor that generates svn_wc_status2_t structures and sends them through status_func / status_baton.
svn_error_tsvn_wc_get_status_editor (const svn_delta_editor_t **editor, void **edit_baton, svn_revnum_t *edit_revision, svn_wc_adm_access_t *anchor, const char *target, apr_hash_t *config, svn_boolean_t recurse, svn_boolean_t get_all, svn_boolean_t no_ignore, svn_wc_status_func_t status_func, void *status_baton, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_traversal_info_t *traversal_info, apr_pool_t *pool)
 Same as svn_wc_get_status_editor2(), but with set_locks_baton set to NULL, and taking a deprecated svn_wc_status_func_t argument.
svn_error_tsvn_wc_status_set_repos_locks (void *set_locks_baton, apr_hash_t *locks, const char *repos_root, apr_pool_t *pool)
 Associate locks, a hash table mapping const char* absolute repository paths to svn_lock_t objects, with a set_locks_baton returned by an earlier call to svn_wc_get_status_editor2().
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_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)
 Schedule path for deletion, it will be deleted from the repository on the next commit.
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_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)
 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_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_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)
 Add a file to a working copy at dst_path, obtaining the file's contents from new_text_path and its properties from new_props, which normally come from the repository file represented by the copyfrom args, see below.
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_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)
 Assuming path is under version control and in a state of conflict, then take path *out* of this state.
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_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)
 Bump a successfully committed absolute path to new_revnum after a commit succeeds.
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)
 Similar to svn_wc_process_committed2(), but with remove_lock 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)
 Do a depth-first crawl in a working copy, beginning at path.
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_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)
 Set *editor and *edit_baton to an editor and baton for updating a working copy.
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_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)
 A variant of svn_wc_get_update_editor().
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_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)
 Set property name to value for path, or if value is null, remove property name from path.
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_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)
 Return an editor/edit_baton for diffing a working copy against the repository.
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_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)
 Compare working copy against the text-base.
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_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)
 Given paths to three fulltexts, merge the differences between left and right into merge_target.
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)
 Given a path under version control, merge an array of propchanges into the path's existing properties.
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_copy_path (const char *path, const char **pristine_path, apr_pool_t *pool)
 Given a path to a wc file, return a pristine_path which points to a pristine version of the file.
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_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)
 Change repository references at path that begin with from to begin with to instead.
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)
 Revert changes to path (perhaps in a recursive fashion).
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_file (apr_file_t **fp, const char *path, svn_boolean_t delete_on_close, apr_pool_t *pool)
 Create a unique temporary file in administrative tmp/ area of directory path.
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)
 Set *xlated_p to a path to a possibly translated copy of versioned file vfile, or to vfile itself if no translation is necessary.
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)
 Send the local modifications for versioned file path (with matching file_baton) through editor, then close file_baton afterwards.
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_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.


Detailed Description

The Subversion Working Copy Library.

Requires:

Provides:

Used By:

Definition in file svn_wc.h.


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 1081 of file svn_wc.h.


Typedef Documentation

typedef struct svn_wc_adm_access_t svn_wc_adm_access_t
 

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 72 of file svn_wc.h.

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

Relocation validation callback typedef.

Called for each relocated file/directory. uuid 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.

Definition at line 2939 of file svn_wc.h.

typedef struct svn_wc_traversal_info_t svn_wc_traversal_info_t
 

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 390 of file svn_wc.h.


Enumeration Type Documentation

enum svn_wc_merge_outcome_t
 

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 2739 of file svn_wc.h.

enum svn_wc_schedule_t
 

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 1088 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
 

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 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_file()'s doc string about this.

Since:
New in 1.2.

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
 

Add a file to a working copy at dst_path, obtaining the file's contents from new_text_path and its properties from new_props, which normally come from the repository file represented by the copyfrom args, see below.

The new file will be scheduled for addition with history.

Automatically remove new_text_path upon successful completion.

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.

Use pool for temporary allocations.

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

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

svn_error_t* svn_wc_adm_close svn_wc_adm_access_t adm_access  ) 
 

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.

svn_boolean_t svn_wc_adm_locked 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 depth.

depth 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  depth,
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  depth,
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.

depth specifies how much 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  depth,
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. All the access batons will be in the *anchor_access set.

depth determines the depth used when opening path if path is a versioned directory, depth 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 depth.

depth 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  depth,
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  depth,
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
 

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_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 depth.

depth 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  depth,
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  depth,
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 depth. 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_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_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 state of conflict; return the answers in text_conflicted_p and prop_conflicted_p.

(If the entry mentions that a .rej or .prej exist, but they are both removed, assume the conflict has been resolved by the user.)

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_revert().
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
 

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

Communicate the `state' of the working copy's revisions 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 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.2.

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
 

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

Return a handle in *fp.

The flags will be APR_WRITE | APR_CREATE | APR_EXCL and optionally APR_DELONCLOSE (if the delete_on_close argument is set TRUE).

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

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
 

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.

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

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
 

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.

recurse determines whether to descend into subdirectories when target is a directory. If recurse is TRUE then 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.

Since:
New in 1.2.

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
 

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

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 or an error will be returned. The given revision must also match except for the special case of adding a directory that has a name matching one scheduled for deletion, in which case revision must be zero.

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

Since:
New in 1.3.

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 'deleted' or 'absent' state (and not scheduled for re-addition) are not returned in the hash, unless show_hidden is true.

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 'deleted' or 'absent' state. 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.

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

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
 

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.

recurse determines whether to descend into subdirectories when target is a directory. If recurse is TRUE then 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.

Since:
New in 1.2.

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_copy_path const char *  path,
const char **  pristine_path,
apr_pool_t *  pool
 

Given a path to a wc file, return a pristine_path which points to a pristine version of the file.

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

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
 

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 diff3_cmd is non-null, then use it as the diff3 command for any merging; otherwise, use the built-in merge code.

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.

Since:
New in 1.2.

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
 

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 empty 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 diff3_cmd is non-null, then use it as the diff3 command for any merging; otherwise, use the built-in merge code.

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.

Since:
New in 1.2.

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

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

Use pool for any intermediate allocations.

If path is not found, return the error SVN_ERR_ENTRY_NOT_FOUND.

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_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_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
 

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.

The outcome of the merge is returned in *merge_outcome. If there is a conflict and dry_run is FALSE, 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.

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
 

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

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
 

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

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

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
 

Similar to svn_wc_process_committed2(), but with remove_lock set to FALSE.

Deprecated:
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
 

Bump a successfully committed absolute path 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 hold a write lock appropriate for path.

If non-null, wcprops 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 recurse is true and path is a directory, then bump every versioned object at or under path. This is usually done for copied trees.

Since:
New in 1.2.

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, 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
 

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.

Use pool for temporary allocation.

Since:
New in 1.2.

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_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
 

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.

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
 

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 recurse is true, then search recursively for conflicts to resolve.

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 or only property conflict resolution was requested, and it was successful, then success gets reported.

Since:
New in 1.2.

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
 

Revert changes to path (perhaps in a recursive fashion).

Perform necessary allocations in pool.

parent_access is an access baton for the directory containing path, unless path is a wc root, in which case parent_access refers to path itself.

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

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

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
 

Set *xlated_p to a path to a possibly translated copy of versioned file vfile, or to vfile itself if no translation is necessary.

That is, if vfile's properties indicate newline conversion or keyword expansion, point *xlated_p to a copy of vfile whose newlines are unconverted and keywords contracted, in whatever manner is indicated by vfile's properties; otherwise, set *xlated_p to vfile.

If force_repair is set, the translated file will have any inconsistent line endings repaired. This should only be used when the resultant file is being created for comparison against vfile's text base.

Caller is responsible for detecting if they are different (pointer comparison is sufficient), and for removing *xlated_p if necessary.

This function is generally used to get a file that can be compared meaningfully against vfile's text base.

If *xlated_p is different from vfile, then choose *xlated_p's name using svn_io_open_unique_file() with SVN_WC__TMP_EXT, and allocate it in pool. Also use pool for any temporary allocation.

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

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

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
 

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

const svn_version_t* svn_wc_version void   ) 
 

Get libsvn_wc version information.

Since:
New in 1.1.

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
 

A generic entry-walker.

Do a 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 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 'deleted' or 'absent' state (and not scheduled for re-addition) are not discovered, unless show_hidden is true.

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


Generated on Sat Jun 10 07:38:16 2006 for Subversion by  doxygen 1.4.6