Subversion 1.6.16
|
Data Structures | |
struct | svn_wc_external_item2_t |
One external item. More... | |
struct | svn_wc_external_item_t |
One external item. More... | |
struct | svn_wc_diff_callbacks3_t |
A callback vtable invoked by our diff-editors, as they receive diffs from the server. More... | |
struct | svn_wc_diff_callbacks2_t |
Similar to svn_wc_diff_callbacks3_t , but without the dir_opened() function, and without the 'tree_conflicted' argument to the functions. More... | |
struct | svn_wc_diff_callbacks_t |
Similar to svn_wc_diff_callbacks2_t , but with file additions/content changes and property changes split into different functions. More... | |
struct | svn_wc_entry_t |
A working copy entry -- that is, revision control information about one versioned entity. More... | |
struct | svn_wc_entry_callbacks2_t |
A callback vtable invoked by the generic entry-walker function. More... | |
struct | svn_wc_entry_callbacks_t |
struct | svn_wc_revision_status_t |
A structure to report a summary of a working copy, including the mix of revisions found within it, whether any parts are switched or locally modified, and whether it is a sparse checkout. More... | |
Modules | |
Translation flags | |
Flags for use with svn_wc_translated_file2. | |
Notification callback handling | |
In many cases, the WC library will scan a working copy and make changes. | |
Conflict callback functionality | |
Interactive conflict handling. | |
Working size constants | |
Values for the working_size field in svn_wc_entry_t when it isn't set to the actual size value of the unchanged working file. | |
Working copy status. | |
We have two functions for getting working copy status: one function for getting the status of exactly one thing, and another for getting the statuses of (potentially) multiple things. | |
Defines | |
#define | SVN_WC_ADM_DIR_NAME ".svn" |
Administrative subdir. | |
#define | SVN_WC_ENTRY_THIS_DIR "" |
How an entries file's owner dir is named in the entries file. | |
Typedefs | |
typedef struct svn_wc_adm_access_t | svn_wc_adm_access_t |
Baton for access to a working copy administrative area. | |
typedef struct svn_wc_traversal_info_t | svn_wc_traversal_info_t |
Traversal information is information gathered by a working copy crawl or update. | |
typedef struct svn_wc_external_item2_t | svn_wc_external_item2_t |
One external item. | |
typedef struct svn_wc_external_item_t | svn_wc_external_item_t |
One external item. | |
typedef svn_error_t *(* | svn_wc_get_file_t )(void *baton, const char *path, svn_revnum_t revision, svn_stream_t *stream, svn_revnum_t *fetched_rev, apr_hash_t **props, apr_pool_t *pool) |
A simple callback type to wrap svn_ra_get_file(); see that docstring for more information. | |
typedef struct svn_wc_diff_callbacks3_t | svn_wc_diff_callbacks3_t |
A callback vtable invoked by our diff-editors, as they receive diffs from the server. | |
typedef struct svn_wc_diff_callbacks2_t | svn_wc_diff_callbacks2_t |
Similar to svn_wc_diff_callbacks3_t , but without the dir_opened() function, and without the 'tree_conflicted' argument to the functions. | |
typedef struct svn_wc_diff_callbacks_t | svn_wc_diff_callbacks_t |
Similar to svn_wc_diff_callbacks2_t , but with file additions/content changes and property changes split into different functions. | |
typedef enum svn_wc_schedule_t | svn_wc_schedule_t |
The schedule states an entry can be in. | |
typedef struct svn_wc_entry_t | svn_wc_entry_t |
A working copy entry -- that is, revision control information about one versioned entity. | |
typedef struct svn_wc_entry_callbacks2_t | svn_wc_entry_callbacks2_t |
A callback vtable invoked by the generic entry-walker function. | |
typedef struct svn_wc_entry_callbacks_t | svn_wc_entry_callbacks_t |
typedef struct svn_wc_committed_queue_t | svn_wc_committed_queue_t |
Storage type for queued post-commit data. | |
typedef svn_error_t *(* | svn_wc_canonicalize_svn_prop_get_file_t )(const svn_string_t **mime_type, svn_stream_t *stream, void *baton, apr_pool_t *pool) |
Callback type used by svn_wc_canonicalize_svn_prop . | |
typedef enum svn_wc_merge_outcome_t | svn_wc_merge_outcome_t |
The outcome of a merge carried out (or tried as a dry-run) by svn_wc_merge() | |
typedef svn_error_t *(* | svn_wc_relocation_validator3_t )(void *baton, const char *uuid, const char *url, const char *root_url, apr_pool_t *pool) |
Relocation validation callback typedef. | |
typedef svn_error_t *(* | svn_wc_relocation_validator2_t )(void *baton, const char *uuid, const char *url, svn_boolean_t root, apr_pool_t *pool) |
Similar to svn_wc_relocation_validator3_t , but without the root_url arguments. | |
typedef svn_error_t *(* | svn_wc_relocation_validator_t )(void *baton, const char *uuid, const char *url) |
Similar to svn_wc_relocation_validator2_t , but without the root and pool arguments. | |
typedef struct svn_wc_revision_status_t | svn_wc_revision_status_t |
A structure to report a summary of a working copy, including the mix of revisions found within it, whether any parts are switched or locally modified, and whether it is a sparse checkout. | |
Enumerations | |
enum | svn_wc_schedule_t { svn_wc_schedule_normal, svn_wc_schedule_add, svn_wc_schedule_delete, svn_wc_schedule_replace } |
The schedule states an entry can be in. More... | |
enum | svn_wc_merge_outcome_t { svn_wc_merge_unchanged, svn_wc_merge_merged, svn_wc_merge_conflict, svn_wc_merge_no_merge } |
The outcome of a merge carried out (or tried as a dry-run) by svn_wc_merge() More... | |
Functions | |
svn_error_t * | svn_wc_adm_open3 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
Return, in *adm_access, a pointer to a new access baton for the working copy administrative area associated with the directory path. | |
svn_error_t * | svn_wc_adm_open2 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, apr_pool_t *pool) |
Similar to svn_wc_adm_open3(), but without cancellation support. | |
svn_error_t * | svn_wc_adm_open (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, svn_boolean_t tree_lock, apr_pool_t *pool) |
Similar to svn_wc_adm_open2(), but with tree_lock instead of levels_to_lock. | |
svn_error_t * | svn_wc_adm_probe_open3 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
Checks the working copy to determine the node type of path. | |
svn_error_t * | svn_wc_adm_probe_open2 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, apr_pool_t *pool) |
Similar to svn_wc_adm_probe_open3() without the cancel functionality. | |
svn_error_t * | svn_wc_adm_probe_open (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, svn_boolean_t tree_lock, apr_pool_t *pool) |
Similar to svn_wc_adm_probe_open2(), but with tree_lock instead of levels_to_lock. | |
svn_error_t * | svn_wc_adm_open_anchor (svn_wc_adm_access_t **anchor_access, svn_wc_adm_access_t **target_access, const char **target, const char *path, svn_boolean_t write_lock, int levels_to_lock, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
Open access batons for path and return in *anchor_access and *target the anchor and target required to drive an editor. | |
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. | |
svn_error_t * | svn_wc_adm_probe_retrieve (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, apr_pool_t *pool) |
Check the working copy to determine the node type of path. | |
svn_error_t * | svn_wc_adm_probe_try3 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
Try various ways to obtain an access baton for path. | |
svn_error_t * | svn_wc_adm_probe_try2 (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, int levels_to_lock, apr_pool_t *pool) |
Similar to svn_wc_adm_probe_try3() without the cancel functionality. | |
svn_error_t * | svn_wc_adm_probe_try (svn_wc_adm_access_t **adm_access, svn_wc_adm_access_t *associated, const char *path, svn_boolean_t write_lock, svn_boolean_t tree_lock, apr_pool_t *pool) |
Similar to svn_wc_adm_probe_try2(), but with tree_lock instead of levels_to_lock. | |
svn_error_t * | svn_wc_adm_close2 (svn_wc_adm_access_t *adm_access, apr_pool_t *scratch_pool) |
Give up the access baton adm_access, and its lock if any. | |
svn_error_t * | svn_wc_adm_close (svn_wc_adm_access_t *adm_access) |
const char * | svn_wc_adm_access_path (const svn_wc_adm_access_t *adm_access) |
Return the path used to open the access baton adm_access. | |
apr_pool_t * | svn_wc_adm_access_pool (const svn_wc_adm_access_t *adm_access) |
Return the pool used by access baton adm_access. | |
svn_boolean_t | svn_wc_adm_locked (const svn_wc_adm_access_t *adm_access) |
Return TRUE is the access baton adm_access has a write lock, FALSE otherwise. | |
svn_error_t * | svn_wc_locked (svn_boolean_t *locked, const char *path, apr_pool_t *pool) |
Set *locked to non-zero if path is locked, else set it to zero. | |
svn_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_t * | svn_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_t * | svn_wc_init_traversal_info (apr_pool_t *pool) |
Return a new, empty traversal info object, allocated in pool. | |
void | svn_wc_edited_externals (apr_hash_t **externals_old, apr_hash_t **externals_new, svn_wc_traversal_info_t *traversal_info) |
Set *externals_old and *externals_new to hash tables representing changes to values of the svn:externals property on directories traversed by traversal_info. | |
void | svn_wc_traversed_depths (apr_hash_t **depths, svn_wc_traversal_info_t *traversal_info) |
Set *depths to a hash table mapping const char * directory names (directories traversed by traversal_info) to const char * values (the depths of those directories, as converted by svn_depth_to_word()). | |
svn_error_t * | svn_wc_external_item_create (const svn_wc_external_item2_t **item, apr_pool_t *pool) |
Initialize an external item. | |
svn_wc_external_item2_t * | svn_wc_external_item2_dup (const svn_wc_external_item2_t *item, apr_pool_t *pool) |
Return a duplicate of item, allocated in pool. | |
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. | |
svn_error_t * | svn_wc_parse_externals_description3 (apr_array_header_t **externals_p, const char *parent_directory, const char *desc, svn_boolean_t canonicalize_url, apr_pool_t *pool) |
If externals_p is non-NULL, set *externals_p to an array of svn_wc_external_item2_t * objects based on desc. | |
svn_error_t * | svn_wc_parse_externals_description2 (apr_array_header_t **externals_p, const char *parent_directory, const char *desc, apr_pool_t *pool) |
Similar to svn_wc_parse_externals_description3() with canonicalize_url set to TRUE , but returns an array of svn_wc_external_item_t * objects instead of svn_wc_external_item2_t * objects. | |
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. | |
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. | |
svn_error_t * | svn_wc_has_binary_prop (svn_boolean_t *has_binary_prop, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool) |
Set *has_binary_prop to TRUE iff path has been marked with a property indicating that it is non-text (in other words, binary). | |
svn_error_t * | svn_wc_text_modified_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_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. | |
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. | |
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 * ). | |
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. | |
svn_error_t * | svn_wc_conflicted_p2 (svn_boolean_t *text_conflicted_p, svn_boolean_t *prop_conflicted_p, svn_boolean_t *tree_conflicted_p, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool) |
Given a path in a dir under version control, decide if it is in a state of conflict; return the answers in *text_conflicted_p, *prop_conflicted_p, and *tree_conflicted_p. | |
svn_error_t * | svn_wc_conflicted_p (svn_boolean_t *text_conflicted_p, svn_boolean_t *prop_conflicted_p, const char *dir_path, const svn_wc_entry_t *entry, apr_pool_t *pool) |
Given a dir_path under version control, decide if one of its entries (entry) is in a state of conflict; return the answers in text_conflicted_p and prop_conflicted_p. | |
svn_error_t * | svn_wc_get_ancestry (char **url, svn_revnum_t *rev, const char *path, svn_wc_adm_access_t *adm_access, apr_pool_t *pool) |
Set *url and *rev to the ancestor URL and revision for path, allocating in pool. | |
svn_error_t * | svn_wc_walk_entries3 (const char *path, svn_wc_adm_access_t *adm_access, const svn_wc_entry_callbacks2_t *walk_callbacks, void *walk_baton, svn_depth_t depth, svn_boolean_t show_hidden, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
A generic entry-walker. | |
svn_error_t * | svn_wc_walk_entries2 (const char *path, svn_wc_adm_access_t *adm_access, const svn_wc_entry_callbacks_t *walk_callbacks, void *walk_baton, svn_boolean_t show_hidden, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
Similar to svn_wc_walk_entries3(), but without cancellation support or error handling from walk_callbacks, and with depth always set to svn_depth_infinity . | |
svn_error_t * | svn_wc_walk_entries (const char *path, svn_wc_adm_access_t *adm_access, const svn_wc_entry_callbacks_t *walk_callbacks, void *walk_baton, svn_boolean_t show_hidden, apr_pool_t *pool) |
Similar to svn_wc_walk_entries2(), but without cancellation support. | |
svn_error_t * | svn_wc_mark_missing_deleted (const char *path, svn_wc_adm_access_t *parent, apr_pool_t *pool) |
Mark missing path as 'deleted' in its parent's list of entries. | |
svn_error_t * | svn_wc_ensure_adm3 (const char *path, const char *uuid, const char *url, const char *repos, svn_revnum_t revision, svn_depth_t depth, apr_pool_t *pool) |
Ensure that an administrative area exists for path, so that path is a working copy subdir based on url at revision, with depth depth, and with repository UUID uuid and repository root URL repos. | |
svn_error_t * | svn_wc_ensure_adm2 (const char *path, const char *uuid, const char *url, const char *repos, svn_revnum_t revision, apr_pool_t *pool) |
Similar to svn_wc_ensure_adm3(), but with depth set to svn_depth_infinity . | |
svn_error_t * | svn_wc_ensure_adm (const char *path, const char *uuid, const char *url, svn_revnum_t revision, apr_pool_t *pool) |
Similar to svn_wc_ensure_adm2(), but with repos set to NULL . | |
svn_error_t * | svn_wc_maybe_set_repos_root (svn_wc_adm_access_t *adm_access, const char *path, const char *repos, apr_pool_t *pool) |
Set the repository root URL of path to repos, if possible. | |
svn_error_t * | svn_wc_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_t * | svn_wc_copy (const char *src, svn_wc_adm_access_t *dst_parent, const char *dst_basename, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func_t notify_func, void *notify_baton, apr_pool_t *pool) |
Similar to svn_wc_copy2(), but takes an svn_wc_notify_func_t instead. | |
svn_error_t * | svn_wc_delete3 (const char *path, svn_wc_adm_access_t *adm_access, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_boolean_t keep_local, apr_pool_t *pool) |
Schedule path for deletion, it will be deleted from the repository on the next commit. | |
svn_error_t * | svn_wc_delete2 (const char *path, svn_wc_adm_access_t *adm_access, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool) |
Similar to svn_wc_delete3(), but with keep_local always set to FALSE. | |
svn_error_t * | svn_wc_delete (const char *path, svn_wc_adm_access_t *adm_access, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func_t notify_func, void *notify_baton, apr_pool_t *pool) |
Similar to svn_wc_delete2(), but takes an svn_wc_notify_func_t instead. | |
svn_error_t * | svn_wc_add3 (const char *path, svn_wc_adm_access_t *parent_access, svn_depth_t depth, const char *copyfrom_url, svn_revnum_t copyfrom_rev, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool) |
Put path under version control by adding an entry in its parent, and, if path is a directory, adding an administrative area. | |
svn_error_t * | svn_wc_add2 (const char *path, svn_wc_adm_access_t *parent_access, const char *copyfrom_url, svn_revnum_t copyfrom_rev, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool) |
Similar to svn_wc_add3(), but with the depth parameter always svn_depth_infinity . | |
svn_error_t * | svn_wc_add (const char *path, svn_wc_adm_access_t *parent_access, const char *copyfrom_url, svn_revnum_t copyfrom_rev, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func_t notify_func, void *notify_baton, apr_pool_t *pool) |
Similar to svn_wc_add2(), but takes an svn_wc_notify_func_t instead. | |
svn_error_t * | svn_wc_add_repos_file3 (const char *dst_path, svn_wc_adm_access_t *adm_access, svn_stream_t *new_base_contents, svn_stream_t *new_contents, apr_hash_t *new_base_props, apr_hash_t *new_props, const char *copyfrom_url, svn_revnum_t copyfrom_rev, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *scratch_pool) |
Add a file to a working copy at dst_path, obtaining the text-base's contents from new_base_contents, the wc file's content from new_contents, its base properties from new_base_props and wc properties from new_props. | |
svn_error_t * | svn_wc_add_repos_file2 (const char *dst_path, svn_wc_adm_access_t *adm_access, const char *new_text_base_path, const char *new_text_path, apr_hash_t *new_base_props, apr_hash_t *new_props, const char *copyfrom_url, svn_revnum_t copyfrom_rev, apr_pool_t *pool) |
Same as svn_wc_add_repos_file3(), except that it has pathnames rather than streams for the text base, and actual text, and has no cancellation. | |
svn_error_t * | svn_wc_add_repos_file (const char *dst_path, svn_wc_adm_access_t *adm_access, const char *new_text_path, apr_hash_t *new_props, const char *copyfrom_url, svn_revnum_t copyfrom_rev, apr_pool_t *pool) |
Same as svn_wc_add_repos_file3(), except that it doesn't have the BASE arguments or cancellation. | |
svn_error_t * | svn_wc_remove_from_revision_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_t * | svn_wc_resolved_conflict4 (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t resolve_text, svn_boolean_t resolve_props, svn_boolean_t resolve_tree, svn_depth_t depth, svn_wc_conflict_choice_t conflict_choice, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
Assuming path is under version control and in a state of conflict, then take path *out* of this state. | |
svn_error_t * | svn_wc_resolved_conflict3 (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t resolve_text, svn_boolean_t resolve_props, svn_depth_t depth, svn_wc_conflict_choice_t conflict_choice, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
Similar to svn_wc_resolved_conflict4(), but without tree-conflict resolution support. | |
svn_error_t * | svn_wc_resolved_conflict2 (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t resolve_text, svn_boolean_t resolve_props, svn_boolean_t recurse, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
Similar to svn_wc_resolved_conflict3(), but without automatic conflict resolution support, and with depth set according to recurse: if recurse is TRUE, depth is svn_depth_infinity , else it is svn_depth_files . | |
svn_error_t * | svn_wc_resolved_conflict (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t resolve_text, svn_boolean_t resolve_props, svn_boolean_t recurse, svn_wc_notify_func_t notify_func, void *notify_baton, apr_pool_t *pool) |
Similar to svn_wc_resolved_conflict2(), but takes an svn_wc_notify_func_t and doesn't have cancellation support. | |
svn_wc_committed_queue_t * | svn_wc_committed_queue_create (apr_pool_t *pool) |
Create a queue for use with svn_wc_queue_committed() and svn_wc_process_committed_queue(). | |
svn_error_t * | svn_wc_queue_committed2 (svn_wc_committed_queue_t *queue, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, svn_boolean_t remove_changelist, svn_checksum_t *checksum, apr_pool_t *scratch_pool) |
Queue committed items to be processed later by svn_wc_process_committed_queue(). | |
svn_error_t * | svn_wc_queue_committed (svn_wc_committed_queue_t **queue, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, svn_boolean_t remove_changelist, const unsigned char *digest, apr_pool_t *pool) |
Same as svn_wc_queue_committed2() but the queue parameter has an extra indirection and digest is supplied instead of a checksum type. | |
svn_error_t * | svn_wc_process_committed_queue (svn_wc_committed_queue_t *queue, svn_wc_adm_access_t *adm_access, svn_revnum_t new_revnum, const char *rev_date, const char *rev_author, apr_pool_t *pool) |
Bump all items in queue to new_revnum after a commit succeeds. | |
svn_error_t * | svn_wc_process_committed4 (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, svn_revnum_t new_revnum, const char *rev_date, const char *rev_author, apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, svn_boolean_t remove_changelist, const unsigned char *digest, apr_pool_t *pool) |
svn_error_t * | svn_wc_process_committed3 (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t recurse, svn_revnum_t new_revnum, const char *rev_date, const char *rev_author, apr_array_header_t *wcprop_changes, svn_boolean_t remove_lock, const unsigned char *digest, apr_pool_t *pool) |
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) |
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) |
svn_error_t * | svn_wc_crawl_revisions4 (const char *path, svn_wc_adm_access_t *adm_access, const svn_ra_reporter3_t *reporter, void *report_baton, svn_boolean_t restore_files, svn_depth_t depth, svn_boolean_t honor_depth_exclude, svn_boolean_t depth_compatibility_trick, svn_boolean_t use_commit_times, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_wc_traversal_info_t *traversal_info, apr_pool_t *pool) |
Do a depth-first crawl in a working copy, beginning at path. | |
svn_error_t * | svn_wc_crawl_revisions3 (const char *path, svn_wc_adm_access_t *adm_access, const svn_ra_reporter3_t *reporter, void *report_baton, svn_boolean_t restore_files, svn_depth_t depth, svn_boolean_t depth_compatibility_trick, svn_boolean_t use_commit_times, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_wc_traversal_info_t *traversal_info, apr_pool_t *pool) |
Similar to svn_wc_crawl_revisions4, but with honor_depth_exclude always set to false. | |
svn_error_t * | svn_wc_crawl_revisions2 (const char *path, svn_wc_adm_access_t *adm_access, const svn_ra_reporter2_t *reporter, void *report_baton, svn_boolean_t restore_files, svn_boolean_t recurse, svn_boolean_t use_commit_times, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_wc_traversal_info_t *traversal_info, apr_pool_t *pool) |
Similar to svn_wc_crawl_revisions3, but taking svn_ra_reporter2_t instead of svn_ra_reporter3_t, and therefore only able to report svn_depth_infinity for depths; and taking recurse instead of depth; and with depth_compatibility_trick always false. | |
svn_error_t * | svn_wc_crawl_revisions (const char *path, svn_wc_adm_access_t *adm_access, const svn_ra_reporter_t *reporter, void *report_baton, svn_boolean_t restore_files, svn_boolean_t recurse, svn_boolean_t use_commit_times, svn_wc_notify_func_t notify_func, void *notify_baton, svn_wc_traversal_info_t *traversal_info, apr_pool_t *pool) |
Similar to svn_wc_crawl_revisions2(), but takes an svn_wc_notify_func_t and a svn_reporter_t instead. | |
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. | |
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. | |
svn_error_t * | svn_wc_get_update_editor3 (svn_revnum_t *target_revision, svn_wc_adm_access_t *anchor, const char *target, svn_boolean_t use_commit_times, svn_depth_t depth, svn_boolean_t depth_is_sticky, svn_boolean_t allow_unver_obstructions, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_conflict_resolver_func_t conflict_func, void *conflict_baton, svn_wc_get_file_t fetch_func, void *fetch_baton, const char *diff3_cmd, apr_array_header_t *preserved_exts, const svn_delta_editor_t **editor, void **edit_baton, svn_wc_traversal_info_t *ti, apr_pool_t *pool) |
Set *editor and *edit_baton to an editor and baton for updating a working copy. | |
svn_error_t * | svn_wc_get_update_editor2 (svn_revnum_t *target_revision, svn_wc_adm_access_t *anchor, const char *target, svn_boolean_t use_commit_times, svn_boolean_t recurse, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, const char *diff3_cmd, const svn_delta_editor_t **editor, void **edit_baton, svn_wc_traversal_info_t *ti, apr_pool_t *pool) |
Similar to svn_wc_get_update_editor3() but with the allow_unver_obstructions parameter always set to FALSE, conflict_func and baton set to NULL, fetch_func and baton set to NULL, preserved_exts set to NULL, depth_is_sticky set to FALSE, and depth set according to recurse: if recurse is TRUE, pass svn_depth_infinity , if FALSE, pass svn_depth_files . | |
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. | |
svn_error_t * | svn_wc_get_switch_editor3 (svn_revnum_t *target_revision, svn_wc_adm_access_t *anchor, const char *target, const char *switch_url, svn_boolean_t use_commit_times, svn_depth_t depth, svn_boolean_t depth_is_sticky, svn_boolean_t allow_unver_obstructions, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_conflict_resolver_func_t conflict_func, void *conflict_baton, const char *diff3_cmd, apr_array_header_t *preserved_exts, const svn_delta_editor_t **editor, void **edit_baton, svn_wc_traversal_info_t *ti, apr_pool_t *pool) |
A variant of svn_wc_get_update_editor(). | |
svn_error_t * | svn_wc_get_switch_editor2 (svn_revnum_t *target_revision, svn_wc_adm_access_t *anchor, const char *target, const char *switch_url, svn_boolean_t use_commit_times, svn_boolean_t recurse, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, const char *diff3_cmd, const svn_delta_editor_t **editor, void **edit_baton, svn_wc_traversal_info_t *ti, apr_pool_t *pool) |
Similar to svn_wc_get_switch_editor3() but with the allow_unver_obstructions parameter always set to FALSE, preserved_exts set to NULL, conflict_func and baton set to NULL, depth_is_sticky set to FALSE, and depth set according to recurse: if recurse is TRUE, pass svn_depth_infinity , if FALSE, pass svn_depth_files . | |
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. | |
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. | |
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. | |
svn_error_t * | svn_wc_prop_set3 (const char *name, const svn_string_t *value, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t skip_checks, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool) |
Set property name to value for path, or if value is NULL, remove property name from path. | |
svn_error_t * | svn_wc_prop_set2 (const char *name, const svn_string_t *value, const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t skip_checks, apr_pool_t *pool) |
Like svn_wc_prop_set3(), but without the notification callbacks. | |
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. | |
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_t * | svn_wc_canonicalize_svn_prop (const svn_string_t **propval_p, const char *propname, const svn_string_t *propval, const char *path, svn_node_kind_t kind, svn_boolean_t skip_some_checks, svn_wc_canonicalize_svn_prop_get_file_t prop_getter, void *getter_baton, apr_pool_t *pool) |
Canonicalize the value of an svn:* property propname with value propval. | |
svn_error_t * | svn_wc_get_diff_editor5 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks3_t *callbacks, void *callback_baton, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t use_text_base, svn_boolean_t reverse_order, svn_cancel_func_t cancel_func, void *cancel_baton, const apr_array_header_t *changelists, const svn_delta_editor_t **editor, void **edit_baton, apr_pool_t *pool) |
Return an editor/edit_baton for diffing a working copy against the repository. | |
svn_error_t * | svn_wc_get_diff_editor4 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks2_t *callbacks, void *callback_baton, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t use_text_base, svn_boolean_t reverse_order, svn_cancel_func_t cancel_func, void *cancel_baton, const apr_array_header_t *changelists, const svn_delta_editor_t **editor, void **edit_baton, apr_pool_t *pool) |
Similar to svn_wc_get_diff_editor5(), but with an svn_wc_diff_callbacks2_t instead of svn_wc_diff_callbacks3_t . | |
svn_error_t * | svn_wc_get_diff_editor3 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks2_t *callbacks, void *callback_baton, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t use_text_base, svn_boolean_t reverse_order, svn_cancel_func_t cancel_func, void *cancel_baton, const svn_delta_editor_t **editor, void **edit_baton, apr_pool_t *pool) |
Similar to svn_wc_get_diff_editor4(), but with changelists passed as NULL , and depth set to svn_depth_infinity if recurse is TRUE, or svn_depth_files if recurse is FALSE. | |
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 . | |
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 . | |
svn_error_t * | svn_wc_diff5 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks3_t *callbacks, void *callback_baton, svn_depth_t depth, svn_boolean_t ignore_ancestry, const apr_array_header_t *changelists, apr_pool_t *pool) |
Compare working copy against the text-base. | |
svn_error_t * | svn_wc_diff4 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks2_t *callbacks, void *callback_baton, svn_depth_t depth, svn_boolean_t ignore_ancestry, const apr_array_header_t *changelists, apr_pool_t *pool) |
Similar to svn_wc_diff5(), but with a svn_wc_diff_callbacks2_t argument instead of svn_wc_diff_callbacks3_t . | |
svn_error_t * | svn_wc_diff3 (svn_wc_adm_access_t *anchor, const char *target, const svn_wc_diff_callbacks2_t *callbacks, void *callback_baton, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, apr_pool_t *pool) |
Similar to svn_wc_diff4(), but with changelists passed NULL , and depth set to svn_depth_infinity if recurse is TRUE, or svn_depth_files if recurse is FALSE. | |
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 . | |
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 . | |
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. | |
svn_error_t * | svn_wc_merge3 (enum svn_wc_merge_outcome_t *merge_outcome, const char *left, const char *right, const char *merge_target, svn_wc_adm_access_t *adm_access, const char *left_label, const char *right_label, const char *target_label, svn_boolean_t dry_run, const char *diff3_cmd, const apr_array_header_t *merge_options, const apr_array_header_t *prop_diff, svn_wc_conflict_resolver_func_t conflict_func, void *conflict_baton, apr_pool_t *pool) |
Given paths to three fulltexts, merge the differences between left and right into merge_target. | |
svn_error_t * | svn_wc_merge2 (enum svn_wc_merge_outcome_t *merge_outcome, const char *left, const char *right, const char *merge_target, svn_wc_adm_access_t *adm_access, const char *left_label, const char *right_label, const char *target_label, svn_boolean_t dry_run, const char *diff3_cmd, const apr_array_header_t *merge_options, apr_pool_t *pool) |
Similar to svn_wc_merge3(), but with prop_diff, conflict_func, conflict_baton set to NULL. | |
svn_error_t * | svn_wc_merge (const char *left, const char *right, const char *merge_target, svn_wc_adm_access_t *adm_access, const char *left_label, const char *right_label, const char *target_label, svn_boolean_t dry_run, enum svn_wc_merge_outcome_t *merge_outcome, const char *diff3_cmd, apr_pool_t *pool) |
Similar to svn_wc_merge2(), but with merge_options set to NULL. | |
svn_error_t * | svn_wc_merge_props2 (svn_wc_notify_state_t *state, const char *path, svn_wc_adm_access_t *adm_access, apr_hash_t *baseprops, const apr_array_header_t *propchanges, svn_boolean_t base_merge, svn_boolean_t dry_run, svn_wc_conflict_resolver_func_t conflict_func, void *conflict_baton, apr_pool_t *pool) |
Given a path under version control, merge an array of propchanges into the path's existing properties. | |
svn_error_t * | svn_wc_merge_props (svn_wc_notify_state_t *state, const char *path, svn_wc_adm_access_t *adm_access, apr_hash_t *baseprops, const apr_array_header_t *propchanges, svn_boolean_t base_merge, svn_boolean_t dry_run, apr_pool_t *pool) |
Same as svn_wc_merge_props2(), but with a conflict_func (and baton) of NULL. | |
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. | |
svn_error_t * | svn_wc_get_pristine_contents (svn_stream_t **contents, const char *path, apr_pool_t *result_pool, apr_pool_t *scratch_pool) |
Given a path to a wc file, return a stream to the contents of the pristine copy of the file. | |
svn_error_t * | svn_wc_get_pristine_copy_path (const char *path, const char **pristine_path, apr_pool_t *pool) |
Returns a path to the pristine copy of path. | |
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. | |
svn_error_t * | svn_wc_cleanup (const char *path, svn_wc_adm_access_t *optional_adm_access, const char *diff3_cmd, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
Similar to svn_wc_cleanup2(). | |
svn_error_t * | svn_wc_relocate3 (const char *path, svn_wc_adm_access_t *adm_access, const char *from, const char *to, svn_boolean_t recurse, svn_wc_relocation_validator3_t validator, void *validator_baton, apr_pool_t *pool) |
Change repository references at path that begin with from to begin with to instead. | |
svn_error_t * | svn_wc_relocate2 (const char *path, svn_wc_adm_access_t *adm_access, const char *from, const char *to, svn_boolean_t recurse, svn_wc_relocation_validator2_t validator, void *validator_baton, apr_pool_t *pool) |
Similar to svn_wc_relocate3(), but uses svn_wc_relocation_validator2_t . | |
svn_error_t * | svn_wc_relocate (const char *path, svn_wc_adm_access_t *adm_access, const char *from, const char *to, svn_boolean_t recurse, svn_wc_relocation_validator_t validator, void *validator_baton, apr_pool_t *pool) |
Similar to svn_wc_relocate2(), but uses svn_wc_relocation_validator_t . | |
svn_error_t * | svn_wc_revert3 (const char *path, svn_wc_adm_access_t *parent_access, svn_depth_t depth, svn_boolean_t use_commit_times, const apr_array_header_t *changelists, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool) |
Revert changes to path. | |
svn_error_t * | svn_wc_revert2 (const char *path, svn_wc_adm_access_t *parent_access, svn_boolean_t recursive, svn_boolean_t use_commit_times, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool) |
Similar to svn_wc_revert3(), but with changelists passed as NULL , and depth set according to recursive: if recursive is TRUE, depth is svn_depth_infinity ; if FALSE, depth is svn_depth_empty . | |
svn_error_t * | svn_wc_revert (const char *path, svn_wc_adm_access_t *parent_access, svn_boolean_t recursive, svn_boolean_t use_commit_times, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func_t notify_func, void *notify_baton, apr_pool_t *pool) |
Similar to svn_wc_revert2(), but takes an svn_wc_notify_func_t instead. | |
svn_error_t * | svn_wc_create_tmp_file2 (apr_file_t **fp, const char **new_name, const char *path, svn_io_file_del_t delete_when, apr_pool_t *pool) |
Create a unique temporary file in administrative tmp/ area of directory path. | |
svn_error_t * | svn_wc_create_tmp_file (apr_file_t **fp, const char *path, svn_boolean_t delete_on_close, apr_pool_t *pool) |
Same as svn_wc_create_tmp_file2(), but with new_name set to NULL , and without the ability to delete the file on pool cleanup. | |
svn_error_t * | svn_wc_translated_file2 (const char **xlated_path, const char *src, const char *versioned_file, svn_wc_adm_access_t *adm_access, apr_uint32_t flags, apr_pool_t *pool) |
Set xlated_path to a translated copy of src or to src itself if no translation is necessary. | |
svn_error_t * | svn_wc_translated_file (const char **xlated_p, const char *vfile, svn_wc_adm_access_t *adm_access, svn_boolean_t force_repair, apr_pool_t *pool) |
Same as svn_wc_translated_file2, but will never clean up temporary files. | |
svn_error_t * | svn_wc_translated_stream (svn_stream_t **stream, const char *path, const char *versioned_file, svn_wc_adm_access_t *adm_access, apr_uint32_t flags, apr_pool_t *pool) |
Returns a stream allocated in pool with access to the given path taking the file properties from versioned_file using adm_access. | |
svn_error_t * | svn_wc_transmit_text_deltas2 (const char **tempfile, unsigned char digest[], const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t fulltext, const svn_delta_editor_t *editor, void *file_baton, apr_pool_t *pool) |
Send the local modifications for versioned file path (with matching file_baton) through editor, then close file_baton afterwards. | |
svn_error_t * | svn_wc_transmit_text_deltas (const char *path, svn_wc_adm_access_t *adm_access, svn_boolean_t fulltext, const svn_delta_editor_t *editor, void *file_baton, const char **tempfile, apr_pool_t *pool) |
Similar to svn_wc_transmit_text_deltas2(), but with digest set to NULL. | |
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). | |
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. | |
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. | |
svn_boolean_t | svn_wc_match_ignore_list (const char *str, apr_array_header_t *list, apr_pool_t *pool) |
Return TRUE iff str matches any of the elements of list, a list of zero or more ignore patterns. | |
svn_error_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. | |
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. | |
svn_error_t * | svn_wc_revision_status (svn_wc_revision_status_t **result_p, const char *wc_path, const char *trail_url, svn_boolean_t committed, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
Set *result_p to point to a new svn_wc_revision_status_t structure containing a summary of the revision range and status of the working copy at wc_path (not including "externals"). | |
svn_error_t * | svn_wc_set_changelist (const char *path, const char *changelist, svn_wc_adm_access_t *adm_access, svn_cancel_func_t cancel_func, void *cancel_baton, svn_wc_notify_func2_t notify_func, void *notify_baton, apr_pool_t *pool) |
Set path's entry's 'changelist' attribute to changelist iff changelist is not NULL ; otherwise, remove any current changelist assignment from path. | |
svn_error_t * | svn_wc_crop_tree (svn_wc_adm_access_t *anchor, const char *target, svn_depth_t depth, svn_wc_notify_func2_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool) |
Crop target according to depth. |
#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.
#define SVN_WC_ENTRY_THIS_DIR "" |
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.
typedef svn_error_t*(* svn_wc_canonicalize_svn_prop_get_file_t)(const svn_string_t **mime_type, svn_stream_t *stream, void *baton, apr_pool_t *pool) |
Callback type used by svn_wc_canonicalize_svn_prop
.
If mime_type is non-null, it sets *mime_type to the value of SVN_PROP_MIME_TYPE
for the path passed to svn_wc_canonicalize_svn_prop
(allocated from pool). If stream is non-null, it writes the contents of the file to stream.
(Currently, this is used if you are attempting to set the SVN_PROP_EOL_STYLE
property, to make sure that the value matches the mime type and contents.)
typedef struct svn_wc_committed_queue_t svn_wc_committed_queue_t |
typedef struct svn_wc_diff_callbacks2_t svn_wc_diff_callbacks2_t |
Similar to svn_wc_diff_callbacks3_t
, but without the dir_opened() function, and without the 'tree_conflicted' argument to the functions.
typedef struct svn_wc_diff_callbacks3_t svn_wc_diff_callbacks3_t |
A callback vtable invoked by our diff-editors, as they receive diffs from the server.
'svn diff' and 'svn merge' both implement their own versions of this table.
Common parameters:
adm_access will be an access baton for the directory containing path, or NULL
if the diff editor is not using access batons.
If state is non-NULL, set *state to the state of the item after the operation has been performed. (In practice, this is only useful with merge, not diff; diff callbacks will probably set *state to svn_wc_notify_state_unknown
, since they do not change the state and therefore do not bother to know the state after the operation.) By default, state refers to the item's content state. Functions concerned with property state have separate contentstate and propstate arguments.
If tree_conflicted is non-NULL, set *tree_conflicted to true if this operation caused a tree conflict, else to false. (Like with state, this is only useful with merge, not diff; diff callbacks should set this to false.)
typedef struct svn_wc_diff_callbacks_t svn_wc_diff_callbacks_t |
Similar to svn_wc_diff_callbacks2_t
, but with file additions/content changes and property changes split into different functions.
typedef struct svn_wc_entry_callbacks2_t svn_wc_entry_callbacks2_t |
A callback vtable invoked by the generic entry-walker function.
typedef struct svn_wc_entry_callbacks_t svn_wc_entry_callbacks_t |
typedef struct svn_wc_external_item2_t svn_wc_external_item2_t |
One external item.
This usually represents one line from an svn:externals description but with the path and URL canonicalized.
In order to avoid backwards compatibility problems clients should use svn_wc_external_item_create() to allocate and initialize this structure instead of doing so themselves.
typedef struct svn_wc_external_item_t svn_wc_external_item_t |
One external item.
Similar to svn_wc_external_item2_t, except revision is interpreted as both the operational revision and the peg revision.
typedef svn_error_t*(* svn_wc_get_file_t)(void *baton, const char *path, svn_revnum_t revision, svn_stream_t *stream, svn_revnum_t *fetched_rev, apr_hash_t **props, apr_pool_t *pool) |
A simple callback type to wrap svn_ra_get_file(); see that docstring for more information.
This technique allows libsvn_client to 'wrap' svn_ra_get_file() and pass it down into libsvn_wc functions, thus allowing the WC layer to legally call the RA function via (blind) callback.
typedef svn_error_t*(* svn_wc_relocation_validator2_t)(void *baton, const char *uuid, const char *url, svn_boolean_t root, apr_pool_t *pool) |
Similar to svn_wc_relocation_validator3_t
, but without the root_url arguments.
typedef svn_error_t*(* svn_wc_relocation_validator3_t)(void *baton, const char *uuid, const char *url, const char *root_url, apr_pool_t *pool) |
Relocation validation callback typedef.
Called for each relocated file/directory. uuid, if non-NULL, contains the expected repository UUID, url contains the tentative URL.
baton is a closure object; it should be provided by the implementation, and passed by the caller.
If root is TRUE, then the implementation should make sure that url is the repository root. Else, it can be an URL inside the repository. pool may be used for temporary allocations.
typedef svn_error_t*(* svn_wc_relocation_validator_t)(void *baton, const char *uuid, const char *url) |
Similar to svn_wc_relocation_validator2_t
, but without the root and pool arguments.
uuid will not be NULL in this version of the function.
typedef struct svn_wc_revision_status_t svn_wc_revision_status_t |
A structure to report a summary of a working copy, including the mix of revisions found within it, whether any parts are switched or locally modified, and whether it is a sparse checkout.
typedef enum svn_wc_schedule_t svn_wc_schedule_t |
The schedule states an entry can be in.
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.
The outcome of a merge carried out (or tried as a dry-run) by svn_wc_merge()
enum svn_wc_schedule_t |
svn_error_t* svn_wc_add | ( | const char * | path, |
svn_wc_adm_access_t * | parent_access, | ||
const char * | copyfrom_url, | ||
svn_revnum_t | copyfrom_rev, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_add2(), but takes an svn_wc_notify_func_t
instead.
svn_error_t* svn_wc_add2 | ( | const char * | path, |
svn_wc_adm_access_t * | parent_access, | ||
const char * | copyfrom_url, | ||
svn_revnum_t | copyfrom_rev, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_add3(), but with the depth parameter always svn_depth_infinity
.
svn_error_t* svn_wc_add3 | ( | const char * | path, |
svn_wc_adm_access_t * | parent_access, | ||
svn_depth_t | depth, | ||
const char * | copyfrom_url, | ||
svn_revnum_t | copyfrom_rev, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | pool | ||
) |
Put path under version control by adding an entry in its parent, and, if path is a directory, adding an administrative area.
The new entry and anything under it is scheduled for addition to the repository. parent_access should hold a write lock for the parent directory of path. If path is a directory then an access baton for path will be added to the set containing parent_access.
If path does not exist, return SVN_ERR_WC_PATH_NOT_FOUND
.
If path is a directory, add it at depth; otherwise, ignore depth.
If copyfrom_url is non-NULL, it and copyfrom_rev are used as `copyfrom' args. This is for copy operations, where one wants to schedule path for addition with a particular history.
If cancel_func is non-NULL, call it with cancel_baton at various points during the operation. If it returns an error (typically SVN_ERR_CANCELLED
), return that error immediately.
When the path has been added, then notify_func will be called (if it is not NULL
) with the notify_baton and the path.
Return SVN_ERR_WC_NODE_KIND_CHANGE
if path is both an unversioned directory and a file that is scheduled for deletion or in state deleted.
### This function currently does double duty -- it is also ### responsible for "switching" a working copy directory over to a ### new copyfrom ancestry and scheduling it for addition. Here is ### the old doc string from Ben, lightly edited to bring it ### up-to-date, explaining the TRUE, secret life of this function:
Given a path within a working copy of type KIND, follow this algorithm:
### I think possibly the "switchover" functionality should be ### broken out into a separate function, but its all intertwined in ### the code right now. Ben, thoughts? Hard? Easy? Mauve?
### Update: see "###" comment in svn_wc_add_repos_file3()'s doc string about this.
svn_error_t* svn_wc_add_lock | ( | const char * | path, |
const svn_lock_t * | lock, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_pool_t * | pool | ||
) |
Add lock to the working copy for path.
adm_access must contain a write lock for path. If path is read-only, due to locking properties, make it writable. Perform temporary allocations in pool.
svn_error_t* svn_wc_add_repos_file | ( | const char * | dst_path, |
svn_wc_adm_access_t * | adm_access, | ||
const char * | new_text_path, | ||
apr_hash_t * | new_props, | ||
const char * | copyfrom_url, | ||
svn_revnum_t | copyfrom_rev, | ||
apr_pool_t * | pool | ||
) |
Same as svn_wc_add_repos_file3(), except that it doesn't have the BASE arguments or cancellation.
svn_error_t* svn_wc_add_repos_file2 | ( | const char * | dst_path, |
svn_wc_adm_access_t * | adm_access, | ||
const char * | new_text_base_path, | ||
const char * | new_text_path, | ||
apr_hash_t * | new_base_props, | ||
apr_hash_t * | new_props, | ||
const char * | copyfrom_url, | ||
svn_revnum_t | copyfrom_rev, | ||
apr_pool_t * | pool | ||
) |
Same as svn_wc_add_repos_file3(), except that it has pathnames rather than streams for the text base, and actual text, and has no cancellation.
svn_error_t* svn_wc_add_repos_file3 | ( | const char * | dst_path, |
svn_wc_adm_access_t * | adm_access, | ||
svn_stream_t * | new_base_contents, | ||
svn_stream_t * | new_contents, | ||
apr_hash_t * | new_base_props, | ||
apr_hash_t * | new_props, | ||
const char * | copyfrom_url, | ||
svn_revnum_t | copyfrom_rev, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | scratch_pool | ||
) |
Add a file to a working copy at dst_path, obtaining the text-base's contents from new_base_contents, the wc file's content from new_contents, its base properties from new_base_props and wc properties from new_props.
The base text and props normally come from the repository file represented by the copyfrom args, see below. The new file will be scheduled for addition with history.
new_contents and new_props may be NULL, in which case the working copy text and props are taken from the base files with appropriate translation of the file's content.
new_contents must be provided in Normal Form. This is required in order to pass both special and non-special files through a stream.
adm_access, or an access baton in its associated set, must contain a write lock for the parent of dst_path.
If copyfrom_url is non-NULL, then copyfrom_rev must be a valid revision number, and together they are the copyfrom history for the new file.
The cancel_func and cancel_baton are a standard cancellation callback, or NULL if no callback is needed. notify_func and notify_baton are a notification callback, and will be notified of the addition of this file.
Use scratch_pool for temporary allocations.
### NOTE: the notification callback/baton is not yet used.
### This function is very redundant with svn_wc_add(). Ideally, we'd merge them, so that svn_wc_add() would just take optional new_props and optional copyfrom information. That way it could be used for both 'svn add somefilesittingonmydisk' and for adding files from repositories, with or without copyfrom history.
The problem with this Ideal Plan is that svn_wc_add() also takes care of recursive URL-rewriting. There's a whole comment in its doc string about how that's really weird, outside its core mission, etc, etc. So another part of the Ideal Plan is that that functionality of svn_wc_add() would move into a separate function.
svn_error_t* svn_wc_adm_close2 | ( | svn_wc_adm_access_t * | adm_access, |
apr_pool_t * | scratch_pool | ||
) |
Give up the access baton adm_access, and its lock if any.
This will recursively close any batons in the same set that are direct subdirectories of adm_access. Any physical locks will be removed from the working copy. Lock removal is unconditional, there is no check to determine if cleanup is required.
Any temporary allocations are performed using scratch_pool.
svn_boolean_t svn_wc_adm_locked | ( | const svn_wc_adm_access_t * | adm_access | ) |
Return TRUE
is the access baton adm_access has a write lock, FALSE
otherwise.
Compared to svn_wc_locked() this is a cheap, fast function that doesn't access the filesystem.
svn_error_t* svn_wc_adm_open | ( | svn_wc_adm_access_t ** | adm_access, |
svn_wc_adm_access_t * | associated, | ||
const char * | path, | ||
svn_boolean_t | write_lock, | ||
svn_boolean_t | tree_lock, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_adm_open2(), but with tree_lock instead of levels_to_lock.
levels_to_lock is set to -1 if tree_lock is TRUE
, else 0.
svn_error_t* svn_wc_adm_open2 | ( | svn_wc_adm_access_t ** | adm_access, |
svn_wc_adm_access_t * | associated, | ||
const char * | path, | ||
svn_boolean_t | write_lock, | ||
int | levels_to_lock, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_adm_open3(), but without cancellation support.
svn_error_t* svn_wc_adm_open3 | ( | svn_wc_adm_access_t ** | adm_access, |
svn_wc_adm_access_t * | associated, | ||
const char * | path, | ||
svn_boolean_t | write_lock, | ||
int | levels_to_lock, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
Return, in *adm_access, a pointer to a new access baton for the working copy administrative area associated with the directory path.
If write_lock is TRUE the baton will include a write lock, otherwise the baton can only be used for read access. If path refers to a directory that is already write locked then the error SVN_ERR_WC_LOCKED
will be returned. The error SVN_ERR_WC_NOT_DIRECTORY
will be returned if path is not a versioned directory.
If associated is an open access baton then adm_access will be added to the set containing associated. associated can be NULL
, in which case adm_access is the start of a new set.
levels_to_lock specifies how far to lock. Zero means just the specified directory. Any negative value means to lock the entire working copy directory hierarchy under path. A positive value indicates the number of levels of directories to lock -- 1 means just immediate subdirectories, 2 means immediate subdirectories and their subdirectories, etc. All the access batons will become part of the set containing adm_access. This is an all-or-nothing option, if it is not possible to lock all the requested directories then an error will be returned and adm_access will be invalid, with the exception that subdirectories of path that are missing from the physical filesystem will not be locked and will not cause an error. The error SVN_ERR_WC_LOCKED
will be returned if a subdirectory of path is already write locked.
If cancel_func is non-NULL, call it with cancel_baton to determine if the client has cancelled the operation.
pool will be used to allocate memory for the baton and any subsequently cached items. If adm_access has not been closed when the pool is cleared, it will be closed automatically at that point, and removed from its set. A baton closed in this way will not remove physical locks from the working copy if cleanup is required.
The first baton in a set, with associated passed as NULL
, must have the longest lifetime of all the batons in the set. This implies it must be the root of the hierarchy.
svn_error_t* svn_wc_adm_open_anchor | ( | svn_wc_adm_access_t ** | anchor_access, |
svn_wc_adm_access_t ** | target_access, | ||
const char ** | target, | ||
const char * | path, | ||
svn_boolean_t | write_lock, | ||
int | levels_to_lock, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
Open access batons for path and return in *anchor_access and *target the anchor and target required to drive an editor.
Return in *target_access the access baton for the target, which may be the same as *anchor_access (in which case *target is the empty string, never NULL). All the access batons will be in the *anchor_access set.
levels_to_lock determines the levels_to_lock used when opening path if path is a versioned directory, levels_to_lock is ignored otherwise. If write_lock is TRUE
the access batons will hold write locks.
If cancel_func is non-NULL, call it with cancel_baton to determine if the client has cancelled the operation.
This function is essentially a combination of svn_wc_adm_open3() and svn_wc_get_actual_target(), with the emphasis on reducing physical IO.
svn_error_t* svn_wc_adm_probe_open | ( | svn_wc_adm_access_t ** | adm_access, |
svn_wc_adm_access_t * | associated, | ||
const char * | path, | ||
svn_boolean_t | write_lock, | ||
svn_boolean_t | tree_lock, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_adm_probe_open2(), but with tree_lock instead of levels_to_lock.
levels_to_lock is set to -1 if tree_lock is TRUE
, else 0.
svn_error_t* svn_wc_adm_probe_open2 | ( | svn_wc_adm_access_t ** | adm_access, |
svn_wc_adm_access_t * | associated, | ||
const char * | path, | ||
svn_boolean_t | write_lock, | ||
int | levels_to_lock, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_adm_probe_open3() without the cancel functionality.
svn_error_t* svn_wc_adm_probe_open3 | ( | svn_wc_adm_access_t ** | adm_access, |
svn_wc_adm_access_t * | associated, | ||
const char * | path, | ||
svn_boolean_t | write_lock, | ||
int | levels_to_lock, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
Checks the working copy to determine the node type of path.
If path is a versioned directory then the behaviour is like that of svn_wc_adm_open3(), otherwise, if path is a file or does not exist, then the behaviour is like that of svn_wc_adm_open3() with path replaced by the parent directory of path. If path is an unversioned directory, the behaviour is also like that of svn_wc_adm_open3() on the parent, except that if the open fails, then the returned SVN_ERR_WC_NOT_DIRECTORY error refers to path, not to path's parent.
svn_error_t* svn_wc_adm_probe_retrieve | ( | svn_wc_adm_access_t ** | adm_access, |
svn_wc_adm_access_t * | associated, | ||
const char * | path, | ||
apr_pool_t * | pool | ||
) |
Check the working copy to determine the node type of path.
If path is a versioned directory then the behaviour is like that of svn_wc_adm_retrieve(), otherwise, if path is a file, an unversioned directory, or does not exist, then the behaviour is like that of svn_wc_adm_retrieve() with path replaced by the parent directory of path.
svn_error_t* svn_wc_adm_probe_try | ( | svn_wc_adm_access_t ** | adm_access, |
svn_wc_adm_access_t * | associated, | ||
const char * | path, | ||
svn_boolean_t | write_lock, | ||
svn_boolean_t | tree_lock, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_adm_probe_try2(), but with tree_lock instead of levels_to_lock.
levels_to_lock is set to -1 if tree_lock is TRUE
, else 0.
svn_error_t* svn_wc_adm_probe_try2 | ( | svn_wc_adm_access_t ** | adm_access, |
svn_wc_adm_access_t * | associated, | ||
const char * | path, | ||
svn_boolean_t | write_lock, | ||
int | levels_to_lock, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_adm_probe_try3() without the cancel functionality.
svn_error_t* svn_wc_adm_probe_try3 | ( | svn_wc_adm_access_t ** | adm_access, |
svn_wc_adm_access_t * | associated, | ||
const char * | path, | ||
svn_boolean_t | write_lock, | ||
int | levels_to_lock, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
Try various ways to obtain an access baton for path.
First, try to obtain *adm_access via svn_wc_adm_probe_retrieve(), but if this fails because associated can't give a baton for path or path's parent, then try svn_wc_adm_probe_open3(), this time passing write_lock and levels_to_lock. If there is still no access because path is not a versioned directory, then just set *adm_access to NULL and return success. But if it is because path is locked, then return the error SVN_ERR_WC_LOCKED
, and the effect on *adm_access is undefined. (Or if the attempt fails for any other reason, return the corresponding error, and the effect on *adm_access is also undefined.)
If svn_wc_adm_probe_open3() succeeds, then add *adm_access to associated.
If cancel_func is non-NULL, call it with cancel_baton to determine if the client has cancelled the operation.
Use pool only for local processing, not to allocate *adm_access.
svn_error_t* svn_wc_adm_retrieve | ( | svn_wc_adm_access_t ** | adm_access, |
svn_wc_adm_access_t * | associated, | ||
const char * | path, | ||
apr_pool_t * | pool | ||
) |
Return, in *adm_access, a pointer to an existing access baton associated with path.
path must be a directory that is locked as part of the set containing the associated access baton.
If the requested access baton is marked as missing in, or is simply absent from, associated, return SVN_ERR_WC_NOT_LOCKED.
pool is used only for local processing, it is not used for the batons.
svn_error_t* svn_wc_canonicalize_svn_prop | ( | const svn_string_t ** | propval_p, |
const char * | propname, | ||
const svn_string_t * | propval, | ||
const char * | path, | ||
svn_node_kind_t | kind, | ||
svn_boolean_t | skip_some_checks, | ||
svn_wc_canonicalize_svn_prop_get_file_t | prop_getter, | ||
void * | getter_baton, | ||
apr_pool_t * | pool | ||
) |
Canonicalize the value of an svn:* property propname with value propval.
If the property is not appropriate for a node of kind kind, or is otherwise invalid, throw an error. Otherwise, set *propval_p to a canonicalized version of the property value. If skip_some_checks is TRUE, only some validity checks are taken.
Some validity checks require access to the contents and MIME type of the target if it is a file; they will call prop_getter with getter_baton, which then needs to set the MIME type and print the contents of the file to the given stream.
path should be the path of the file in question; it is only used for error messages.
### This is not actually related to the WC, but it does need to call ### svn_wc_parse_externals_description2.
svn_error_t* svn_wc_check_wc | ( | const char * | path, |
int * | wc_format, | ||
apr_pool_t * | pool | ||
) |
Set *wc_format to path's working copy format version number if path is a valid working copy directory, else set it to 0.
Return error APR_ENOENT
if path does not exist at all.
svn_error_t* svn_wc_cleanup | ( | const char * | path, |
svn_wc_adm_access_t * | optional_adm_access, | ||
const char * | diff3_cmd, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_cleanup2().
optional_adm_access is an historic relic and not used, it may be NULL.
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.
svn_wc_committed_queue_t* svn_wc_committed_queue_create | ( | apr_pool_t * | pool | ) |
Create a queue for use with svn_wc_queue_committed() and svn_wc_process_committed_queue().
The returned queue and all further allocations required for queueing new items will also be done from pool.
svn_error_t* svn_wc_conflicted_p | ( | svn_boolean_t * | text_conflicted_p, |
svn_boolean_t * | prop_conflicted_p, | ||
const char * | dir_path, | ||
const svn_wc_entry_t * | entry, | ||
apr_pool_t * | pool | ||
) |
Given a dir_path under version control, decide if one of its entries (entry) is in a state of conflict; return the answers in text_conflicted_p and prop_conflicted_p.
These pointers must not be null.
If the entry mentions that text conflict files (with suffix .mine, .theirs, etc.) exist, but they cannot be found, assume the text conflict has been resolved by the user and return FALSE in *text_conflicted_p.
Similarly, if the entry mentions that a property conflicts file (.prej suffix) exists, but it cannot be found, assume the property conflicts have been resolved by the user and return FALSE in *prop_conflicted_p.
The entry is not updated.
svn_error_t* svn_wc_conflicted_p2 | ( | svn_boolean_t * | text_conflicted_p, |
svn_boolean_t * | prop_conflicted_p, | ||
svn_boolean_t * | tree_conflicted_p, | ||
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_pool_t * | pool | ||
) |
Given a path in a dir under version control, decide if it is in a state of conflict; return the answers in *text_conflicted_p, *prop_conflicted_p, and *tree_conflicted_p.
If one or two of the answers are uninteresting, simply pass NULL
pointers for those.
If path is unversioned or does not exist, *text_conflicted_p and *prop_conflicted_p will be FALSE
if non-NULL.
adm_access is the admin access baton of the parent directory.
If the path has corresponding text conflict files (with suffix .mine, .theirs, etc.) that cannot be found, assume that the text conflict has been resolved by the user and return FALSE
in *text_conflicted_p.
Similarly, if a property conflicts file (.prej suffix) is said to exist, but it cannot be found, assume that the property conflicts have been resolved by the user and return FALSE
in *prop_conflicted_p.
*tree_conflicted_p can't be auto-resolved in this fashion. An explicit `resolved' is needed.
svn_error_t* svn_wc_copy | ( | const char * | src, |
svn_wc_adm_access_t * | dst_parent, | ||
const char * | dst_basename, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_copy2(), but takes an svn_wc_notify_func_t
instead.
svn_error_t* svn_wc_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.
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.
svn_error_t* svn_wc_crawl_revisions2 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
const svn_ra_reporter2_t * | reporter, | ||
void * | report_baton, | ||
svn_boolean_t | restore_files, | ||
svn_boolean_t | recurse, | ||
svn_boolean_t | use_commit_times, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_wc_traversal_info_t * | traversal_info, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_crawl_revisions3, but taking svn_ra_reporter2_t instead of svn_ra_reporter3_t, and therefore only able to report svn_depth_infinity
for depths; and taking recurse instead of depth; and with depth_compatibility_trick always false.
svn_error_t* svn_wc_crawl_revisions3 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
const svn_ra_reporter3_t * | reporter, | ||
void * | report_baton, | ||
svn_boolean_t | restore_files, | ||
svn_depth_t | depth, | ||
svn_boolean_t | depth_compatibility_trick, | ||
svn_boolean_t | use_commit_times, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_wc_traversal_info_t * | traversal_info, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_crawl_revisions4, but with honor_depth_exclude always set to false.
svn_error_t* svn_wc_crawl_revisions4 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
const svn_ra_reporter3_t * | reporter, | ||
void * | report_baton, | ||
svn_boolean_t | restore_files, | ||
svn_depth_t | depth, | ||
svn_boolean_t | honor_depth_exclude, | ||
svn_boolean_t | depth_compatibility_trick, | ||
svn_boolean_t | use_commit_times, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_wc_traversal_info_t * | traversal_info, | ||
apr_pool_t * | pool | ||
) |
Do a depth-first crawl in a working copy, beginning at path.
Communicate the `state' of the working copy's revisions and depths to reporter/report_baton. Obviously, if path is a file instead of a directory, this depth-first crawl will be a short one.
No locks are or logs are created, nor are any animals harmed in the process. No cleanup is necessary. adm_access must be an access baton for the path hierarchy, it does not require a write lock.
After all revisions are reported, reporter->finish_report() is called, which immediately causes the RA layer to update the working copy. Thus the return value may very well reflect the result of the update!
If depth is svn_depth_empty
, then report state only for path itself. If svn_depth_files
, do the same and include immediate file children of path. If svn_depth_immediates
, then behave as if for svn_depth_files
but also report the property states of immediate subdirectories. If depth is svn_depth_infinity
, then report state fully recursively. All descents are only as deep as path's own depth permits, of course. If depth is svn_depth_unknown
, then just use svn_depth_infinity
, which in practice means depth of path.
Iff honor_depth_exclude is TRUE, the crawler will report paths whose ambient depth is svn_depth_exclude
as being excluded, and thus prevent the server from pushing update data for those paths; therefore, don't set this flag if you wish to pull in excluded paths. Note that svn_depth_exclude
on the target path is never honored, even if honor_depth_exclude is TRUE, because we need to be able to explicitly pull in a target. For example, if this is the working copy...
svn co greek_tree_repos wc_dir svn up --set-depth exclude wc_dir/A/B/E # now A/B/E is excluded
...then 'svn up wc_dir/A/B' would report E as excluded (assuming honor_depth_exclude is TRUE), but 'svn up wc_dir/A/B/E' would not, because the latter is trying to explicitly pull in E. In general, we never report the update target as excluded.
Iff depth_compatibility_trick is TRUE, then set the start_empty
flag on reporter->set_path() and reporter->link_path() calls as necessary to trick a pre-1.5 (i.e., depth-unaware) server into sending back all the items the client might need to upgrade a working copy from a shallower depth to a deeper one.
If restore_files is TRUE, then unexpectedly missing working files will be restored from the administrative directory's cache. For each file restored, the notify_func function will be called with the notify_baton and the path of the restored file. notify_func may be NULL
if this notification is not required. If use_commit_times is TRUE, then set restored files' timestamps to their last-commit-times.
If traversal_info is non-NULL, then record pre-update traversal state in it. (Caller should obtain traversal_info from svn_wc_init_traversal_info().)
svn_error_t* svn_wc_create_tmp_file | ( | apr_file_t ** | fp, |
const char * | path, | ||
svn_boolean_t | delete_on_close, | ||
apr_pool_t * | pool | ||
) |
Same as svn_wc_create_tmp_file2(), but with new_name set to NULL
, and without the ability to delete the file on pool cleanup.
svn_error_t* svn_wc_create_tmp_file2 | ( | apr_file_t ** | fp, |
const char ** | new_name, | ||
const char * | path, | ||
svn_io_file_del_t | delete_when, | ||
apr_pool_t * | pool | ||
) |
Create a unique temporary file in administrative tmp/ area of directory path.
Return a handle in *fp and the path in *new_name. Either fp or new_name can be NULL.
The flags will be APR_WRITE | APR_CREATE | APR_EXCL
and optionally APR_DELONCLOSE
(if the delete_when argument is set to svn_io_file_del_on_close
).
This means that as soon as fp is closed, the tmp file will vanish.
svn_error_t* svn_wc_crop_tree | ( | svn_wc_adm_access_t * | anchor, |
const char * | target, | ||
svn_depth_t | depth, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
Crop target according to depth.
Remove any item that exceeds the boundary of depth (relative to target) from revision control. Leave modified items behind (unversioned), while removing unmodified ones completely.
If target starts out with a shallower depth than depth, do not upgrade it to depth (that would not be cropping); however, do check children and crop them appropriately according to depth.
Returns immediately with no error if target is not a directory, or if depth is not restrictive (e.g., svn_depth_infinity
).
anchor is an access baton, with a tree lock, for the local path to the working copy which will be used as the root of this operation. If target is not empty, it represents an entry in the anchor path; otherwise, the anchor path is the target. target may not be NULL
.
If cancel_func is not NULL
, call it with cancel_baton at various points to determine if the client has cancelled the operation.
If notify_func is not NULL
, call it with notify_baton to report changes as they are made.
svn_error_t* svn_wc_delete | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_delete2(), but takes an svn_wc_notify_func_t
instead.
svn_error_t* svn_wc_delete2 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_delete3(), but with keep_local always set to FALSE.
svn_error_t* svn_wc_delete3 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_boolean_t | keep_local, | ||
apr_pool_t * | pool | ||
) |
Schedule path for deletion, it will be deleted from the repository on the next commit.
If path refers to a directory, then a recursive deletion will occur. adm_access must hold a write lock for the parent of path.
If keep_local is FALSE, this function immediately deletes all files, modified and unmodified, versioned and unversioned from the working copy. It also immediately deletes unversioned directories and directories that are scheduled to be added. Only versioned directories will remain in the working copy, these get deleted by the update following the commit.
If keep_local is TRUE, all files and directories will be kept in the working copy (and will become unversioned on the next commit).
If cancel_func is non-NULL, call it with cancel_baton at various points during the operation. If it returns an error (typically SVN_ERR_CANCELLED
), return that error immediately.
For each path marked for deletion, notify_func will be called with the notify_baton and that path. The notify_func callback may be NULL
if notification is not needed.
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
.
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
.
svn_error_t* svn_wc_diff3 | ( | svn_wc_adm_access_t * | anchor, |
const char * | target, | ||
const svn_wc_diff_callbacks2_t * | callbacks, | ||
void * | callback_baton, | ||
svn_boolean_t | recurse, | ||
svn_boolean_t | ignore_ancestry, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_diff4(), but with changelists passed NULL
, and depth set to svn_depth_infinity
if recurse is TRUE, or svn_depth_files
if recurse is FALSE.
svn_error_t* svn_wc_diff4 | ( | svn_wc_adm_access_t * | anchor, |
const char * | target, | ||
const svn_wc_diff_callbacks2_t * | callbacks, | ||
void * | callback_baton, | ||
svn_depth_t | depth, | ||
svn_boolean_t | ignore_ancestry, | ||
const apr_array_header_t * | changelists, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_diff5(), but with a svn_wc_diff_callbacks2_t
argument instead of svn_wc_diff_callbacks3_t
.
svn_error_t* svn_wc_diff5 | ( | svn_wc_adm_access_t * | anchor, |
const char * | target, | ||
const svn_wc_diff_callbacks3_t * | callbacks, | ||
void * | callback_baton, | ||
svn_depth_t | depth, | ||
svn_boolean_t | ignore_ancestry, | ||
const apr_array_header_t * | changelists, | ||
apr_pool_t * | pool | ||
) |
Compare working copy against the text-base.
anchor/target represent the base of the hierarchy to be compared.
callbacks/callback_baton is the callback table to use when two files are to be compared.
If depth is svn_depth_empty
, just diff exactly target or anchor if target is empty. If svn_depth_files
then do the same and for top-level file entries as well (if any). If svn_depth_immediates
, do the same as svn_depth_files
but also diff top-level subdirectories at svn_depth_empty
. If svn_depth_infinity
, then diff fully recursively. In the latter case, anchor should be part of an access baton set for the target hierarchy.
ignore_ancestry determines whether paths that have discontinuous node ancestry are treated as delete/add or as simple modifications. If ignore_ancestry is FALSE
, then any discontinuous node ancestry will result in the diff given as a full delete followed by an add.
changelists is an array of const char *
changelist names, used as a restrictive filter on items whose differences are reported; that is, don't generate diffs about any item unless it's a member of one of those changelists. If changelists is empty (or altogether NULL
), no changelist filtering occurs.
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
.
svn_error_t* svn_wc_ensure_adm2 | ( | const char * | path, |
const char * | uuid, | ||
const char * | url, | ||
const char * | repos, | ||
svn_revnum_t | revision, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_ensure_adm3(), but with depth set to svn_depth_infinity
.
svn_error_t* svn_wc_ensure_adm3 | ( | const char * | path, |
const char * | uuid, | ||
const char * | url, | ||
const char * | repos, | ||
svn_revnum_t | revision, | ||
svn_depth_t | depth, | ||
apr_pool_t * | pool | ||
) |
Ensure that an administrative area exists for path, so that path is a working copy subdir based on url at revision, with depth depth, and with repository UUID uuid and repository root URL repos.
depth must be a definite depth, it cannot be svn_depth_unknown
. uuid and repos may be NULL
. If non-NULL
, repos must be a prefix of url.
If the administrative area does not exist, then create it and initialize it to an unlocked state.
If the administrative area already exists then the given url must match the URL in the administrative area and the given revision must match the BASE of the working copy dir unless the admin directory is scheduled for deletion or the SVN_ERR_WC_OBSTRUCTED_UPDATE error will be returned.
Do not ensure existence of path itself; if path does not exist, return error.
svn_error_t* svn_wc_entries_read | ( | apr_hash_t ** | entries, |
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | show_hidden, | ||
apr_pool_t * | pool | ||
) |
Parse the `entries' file for adm_access and return a hash entries, whose keys are (const char *
) entry names and values are (svn_wc_entry_t *
).
The hash entries, and its keys and values, are allocated from the pool used to open the adm_access baton (that's how the entries caching works). pool is used for transient allocations.
Entries that are in a 'excluded', 'deleted' or 'absent' state (and not scheduled for re-addition) are not returned in the hash, unless show_hidden is TRUE. Excluded entries are those with their depth set to svn_depth_exclude
.
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.SVN_WC_ENTRY_THIS_DIR
contain complete information. The entry structures representing subdirs have only the `kind' and `state' fields filled in. If you want info on a subdir, you must use this routine to open its path and read the SVN_WC_ENTRY_THIS_DIR
structure, or call svn_wc_entry() on its path. svn_error_t* svn_wc_entry | ( | const svn_wc_entry_t ** | entry, |
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | show_hidden, | ||
apr_pool_t * | pool | ||
) |
Set *entry to an entry for path, allocated in the access baton pool.
If show_hidden is TRUE, return the entry even if it's in 'excluded', 'deleted' or 'absent' state. Excluded entries are those with their depth set to svn_depth_exclude
. If path is not under revision control, or if entry is hidden, not scheduled for re-addition, and show_hidden is FALSE
, then set *entry to NULL
.
*entry should not be modified, since doing so modifies the entries cache in adm_access without changing the entries file on disk.
If path is not a directory then adm_access must be an access baton for the parent directory of path. To avoid needing to know whether path is a directory or not, if path is a directory adm_access can still be an access baton for the parent of path so long as the access baton for path itself is in the same access baton set.
path can be relative or absolute but must share the same base used to open adm_access.
Note that it is possible for path to be absent from disk but still under revision control; and conversely, it is possible for path to be present, but not under revision control.
Use pool only for local processing.
svn_wc_entry_t* svn_wc_entry_dup | ( | const svn_wc_entry_t * | entry, |
apr_pool_t * | pool | ||
) |
Return a duplicate of entry, allocated in pool.
No part of the new entry will be shared with entry.
svn_wc_external_item2_t* svn_wc_external_item2_dup | ( | const svn_wc_external_item2_t * | item, |
apr_pool_t * | pool | ||
) |
Return a duplicate of item, allocated in pool.
No part of the new item will be shared with item.
svn_error_t* svn_wc_external_item_create | ( | const svn_wc_external_item2_t ** | item, |
apr_pool_t * | pool | ||
) |
Initialize an external item.
Set *item to an external item object, allocated in pool.
In order to avoid backwards compatibility problems, this function is used to initialize and allocate the svn_wc_external_item2_t
structure rather than doing so explicitly, as the size of this structure may change in the future.
The current implementation never returns error, but callers should still check for error, for compatibility with future versions.
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.
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.
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
.
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
.
svn_error_t* svn_wc_get_diff_editor3 | ( | svn_wc_adm_access_t * | anchor, |
const char * | target, | ||
const svn_wc_diff_callbacks2_t * | callbacks, | ||
void * | callback_baton, | ||
svn_boolean_t | recurse, | ||
svn_boolean_t | ignore_ancestry, | ||
svn_boolean_t | use_text_base, | ||
svn_boolean_t | reverse_order, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
const svn_delta_editor_t ** | editor, | ||
void ** | edit_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_get_diff_editor4(), but with changelists passed as NULL
, and depth set to svn_depth_infinity
if recurse is TRUE, or svn_depth_files
if recurse is FALSE.
svn_error_t* svn_wc_get_diff_editor4 | ( | svn_wc_adm_access_t * | anchor, |
const char * | target, | ||
const svn_wc_diff_callbacks2_t * | callbacks, | ||
void * | callback_baton, | ||
svn_depth_t | depth, | ||
svn_boolean_t | ignore_ancestry, | ||
svn_boolean_t | use_text_base, | ||
svn_boolean_t | reverse_order, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
const apr_array_header_t * | changelists, | ||
const svn_delta_editor_t ** | editor, | ||
void ** | edit_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_get_diff_editor5(), but with an svn_wc_diff_callbacks2_t
instead of svn_wc_diff_callbacks3_t
.
svn_error_t* svn_wc_get_diff_editor5 | ( | svn_wc_adm_access_t * | anchor, |
const char * | target, | ||
const svn_wc_diff_callbacks3_t * | callbacks, | ||
void * | callback_baton, | ||
svn_depth_t | depth, | ||
svn_boolean_t | ignore_ancestry, | ||
svn_boolean_t | use_text_base, | ||
svn_boolean_t | reverse_order, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
const apr_array_header_t * | changelists, | ||
const svn_delta_editor_t ** | editor, | ||
void ** | edit_baton, | ||
apr_pool_t * | pool | ||
) |
Return an editor/edit_baton for diffing a working copy against the repository.
anchor/target represent the base of the hierarchy to be compared.
callbacks/callback_baton is the callback table to use when two files are to be compared.
If depth is svn_depth_empty
, just diff exactly target or anchor if target is empty. If svn_depth_files
then do the same and for top-level file entries as well (if any). If svn_depth_immediates
, do the same as svn_depth_files
but also diff top-level subdirectories at svn_depth_empty
. If svn_depth_infinity
, then diff fully recursively. In the latter case, anchor should be part of an access baton set for the target hierarchy.
ignore_ancestry determines whether paths that have discontinuous node ancestry are treated as delete/add or as simple modifications. If ignore_ancestry is FALSE
, then any discontinuous node ancestry will result in the diff given as a full delete followed by an add.
If use_text_base is TRUE, then compare the repository against the working copy's text-base files, rather than the working files.
Normally, the difference from repository->working_copy is shown. If reverse_order is TRUE, then show working_copy->repository diffs.
If cancel_func is non-NULL, it will be used along with cancel_baton to periodically check if the client has canceled the operation.
changelists is an array of const char *
changelist names, used as a restrictive filter on items whose differences are reported; that is, don't generate diffs about any item unless it's a member of one of those changelists. If changelists is empty (or altogether NULL
), no changelist filtering occurs.
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.
svn_error_t* svn_wc_get_pristine_contents | ( | svn_stream_t ** | contents, |
const char * | path, | ||
apr_pool_t * | result_pool, | ||
apr_pool_t * | scratch_pool | ||
) |
Given a path to a wc file, return a stream to the contents of the pristine copy of the file.
This is needed so clients can do diffs. If the WC has no text-base, return a NULL
instead of a stream.
svn_error_t* svn_wc_get_pristine_copy_path | ( | const char * | path, |
const char ** | pristine_path, | ||
apr_pool_t * | pool | ||
) |
Returns a path to the pristine copy of path.
Should use svn_wc_get_pristine_contents() instead.
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.
svn_error_t* svn_wc_get_switch_editor2 | ( | svn_revnum_t * | target_revision, |
svn_wc_adm_access_t * | anchor, | ||
const char * | target, | ||
const char * | switch_url, | ||
svn_boolean_t | use_commit_times, | ||
svn_boolean_t | recurse, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
const char * | diff3_cmd, | ||
const svn_delta_editor_t ** | editor, | ||
void ** | edit_baton, | ||
svn_wc_traversal_info_t * | ti, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_get_switch_editor3() but with the allow_unver_obstructions parameter always set to FALSE, preserved_exts set to NULL, conflict_func and baton set to NULL, depth_is_sticky set to FALSE, and depth set according to recurse: if recurse is TRUE, pass svn_depth_infinity
, if FALSE, pass svn_depth_files
.
svn_error_t* svn_wc_get_switch_editor3 | ( | svn_revnum_t * | target_revision, |
svn_wc_adm_access_t * | anchor, | ||
const char * | target, | ||
const char * | switch_url, | ||
svn_boolean_t | use_commit_times, | ||
svn_depth_t | depth, | ||
svn_boolean_t | depth_is_sticky, | ||
svn_boolean_t | allow_unver_obstructions, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_conflict_resolver_func_t | conflict_func, | ||
void * | conflict_baton, | ||
const char * | diff3_cmd, | ||
apr_array_header_t * | preserved_exts, | ||
const svn_delta_editor_t ** | editor, | ||
void ** | edit_baton, | ||
svn_wc_traversal_info_t * | ti, | ||
apr_pool_t * | pool | ||
) |
A variant of svn_wc_get_update_editor().
Set *editor and *edit_baton to an editor and baton for "switching" a working copy to a new switch_url. (Right now, this URL must be within the same repository that the working copy already comes from.) switch_url must not be NULL
.
If ti is non-NULL, record traversal info in ti, for use by post-traversal accessors such as svn_wc_edited_externals().
anchor is an access baton, with a write lock, for the local path to the working copy which will be used as the root of our editor. Further locks will be acquired if the switch creates new directories. All locks, both those in anchor and newly acquired ones, will be released when the editor driver calls close_edit
.
target is the entry in anchor that will actually be updated, or empty if all of anchor should be updated.
The editor invokes notify_func with notify_baton as the switch progresses, if notify_func is non-NULL.
If cancel_func is non-NULL, it will be called with cancel_baton as the switch progresses to determine if it should continue.
If conflict_func is non-NULL, then invoke it with conflict_baton whenever a conflict is encountered, giving the callback a chance to resolve the conflict before the editor takes more drastic measures (such as marking a file conflicted, or bailing out of the switch).
If diff3_cmd is non-NULL, then use it as the diff3 command for any merging; otherwise, use the built-in merge code.
preserved_exts is an array of filename patterns which, when matched against the extensions of versioned files, determine for which such files any related generated conflict files will preserve the original file's extension as their own. If a file's extension does not match any of the patterns in preserved_exts (which is certainly the case if preserved_exts is NULL
or empty), generated conflict files will carry Subversion's custom extensions.
target_revision is a pointer to a revision location which, after successful completion of the drive of this editor, will be populated with the revision to which the working copy was updated.
If use_commit_times is TRUE, then all edited/added files will have their working timestamp set to the last-committed-time. If FALSE, the working files will be touched with the 'now' time.
depth and depth_is_sticky behave as for svn_wc_get_update_editor3().
If allow_unver_obstructions is TRUE, then allow unversioned obstructions when adding a path.
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.
svn_error_t* svn_wc_get_update_editor2 | ( | svn_revnum_t * | target_revision, |
svn_wc_adm_access_t * | anchor, | ||
const char * | target, | ||
svn_boolean_t | use_commit_times, | ||
svn_boolean_t | recurse, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
const char * | diff3_cmd, | ||
const svn_delta_editor_t ** | editor, | ||
void ** | edit_baton, | ||
svn_wc_traversal_info_t * | ti, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_get_update_editor3() but with the allow_unver_obstructions parameter always set to FALSE, conflict_func and baton set to NULL, fetch_func and baton set to NULL, preserved_exts set to NULL, depth_is_sticky set to FALSE, and depth set according to recurse: if recurse is TRUE, pass svn_depth_infinity
, if FALSE, pass svn_depth_files
.
svn_error_t* svn_wc_get_update_editor3 | ( | svn_revnum_t * | target_revision, |
svn_wc_adm_access_t * | anchor, | ||
const char * | target, | ||
svn_boolean_t | use_commit_times, | ||
svn_depth_t | depth, | ||
svn_boolean_t | depth_is_sticky, | ||
svn_boolean_t | allow_unver_obstructions, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_conflict_resolver_func_t | conflict_func, | ||
void * | conflict_baton, | ||
svn_wc_get_file_t | fetch_func, | ||
void * | fetch_baton, | ||
const char * | diff3_cmd, | ||
apr_array_header_t * | preserved_exts, | ||
const svn_delta_editor_t ** | editor, | ||
void ** | edit_baton, | ||
svn_wc_traversal_info_t * | ti, | ||
apr_pool_t * | pool | ||
) |
Set *editor and *edit_baton to an editor and baton for updating a working copy.
If ti is non-NULL, record traversal info in ti, for use by post-traversal accessors such as svn_wc_edited_externals().
anchor is an access baton, with a write lock, for the local path to the working copy which will be used as the root of our editor. Further locks will be acquired if the update creates new directories. All locks, both those in anchor and newly acquired ones, will be released when the editor driver calls close_edit
.
target is the entry in anchor that will actually be updated, or the empty string if all of anchor should be updated.
The editor invokes notify_func with notify_baton as the update progresses, if notify_func is non-NULL.
If cancel_func is non-NULL, the editor will invoke cancel_func with cancel_baton as the update progresses to see if it should continue.
If conflict_func is non-NULL, then invoke it with conflict_baton whenever a conflict is encountered, giving the callback a chance to resolve the conflict before the editor takes more drastic measures (such as marking a file conflicted, or bailing out of the update).
If fetch_func is non-NULL, then use it (with fetch_baton) as a fallback for retrieving repository files whenever 'copyfrom' args are sent into editor->add_file().
If diff3_cmd is non-NULL, then use it as the diff3 command for any merging; otherwise, use the built-in merge code.
preserved_exts is an array of filename patterns which, when matched against the extensions of versioned files, determine for which such files any related generated conflict files will preserve the original file's extension as their own. If a file's extension does not match any of the patterns in preserved_exts (which is certainly the case if preserved_exts is NULL
or empty), generated conflict files will carry Subversion's custom extensions.
target_revision is a pointer to a revision location which, after successful completion of the drive of this editor, will be populated with the revision to which the working copy was updated.
If use_commit_times is TRUE, then all edited/added files will have their working timestamp set to the last-committed-time. If FALSE, the working files will be touched with the 'now' time.
If allow_unver_obstructions is TRUE, then allow unversioned obstructions when adding a path.
If depth is svn_depth_infinity
, update fully recursively. Else if it is svn_depth_immediates
, update the uppermost directory, its file entries, and the presence or absence of subdirectories (but do not descend into the subdirectories). Else if it is svn_depth_files
, update the uppermost directory and its immediate file entries, but not subdirectories. Else if it is svn_depth_empty
, update exactly the uppermost target, and don't touch its entries.
If depth_is_sticky is set and depth is not svn_depth_unknown
, then in addition to updating PATHS, also set their sticky ambient depth value to depth.
svn_error_t* svn_wc_has_binary_prop | ( | svn_boolean_t * | has_binary_prop, |
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_pool_t * | pool | ||
) |
Set *has_binary_prop to TRUE
iff path has been marked with a property indicating that it is non-text (in other words, binary).
adm_access is an access baton set that contains path.
svn_wc_traversal_info_t* svn_wc_init_traversal_info | ( | apr_pool_t * | pool | ) |
Return a new, empty traversal info object, allocated in pool.
svn_boolean_t svn_wc_is_adm_dir | ( | const char * | name, |
apr_pool_t * | pool | ||
) |
Return TRUE
if name is the name of the WC administrative directory.
Use pool for any temporary allocations. Only works with base directory names, not paths or URIs.
For compatibility, the default name (.svn) will always be treated as an admin dir name, even if the working copy is actually using an alternative name.
svn_boolean_t svn_wc_is_entry_prop | ( | const char * | name | ) |
Return TRUE iff name is a 'entry' property name.
svn_boolean_t svn_wc_is_normal_prop | ( | const char * | name | ) |
Return TRUE iff name is a 'normal' property name.
'Normal' is defined as a user-visible and user-tweakable property that shows up when you fetch a proplist.
The function currently parses the namespace like so:
If these patterns aren't found, then the property is assumed to be Normal.
svn_boolean_t svn_wc_is_wc_prop | ( | const char * | name | ) |
Return TRUE iff name is a 'wc' property name.
svn_error_t* svn_wc_is_wc_root | ( | svn_boolean_t * | wc_root, |
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_pool_t * | pool | ||
) |
Set *wc_root to TRUE
if path represents a "working copy root", FALSE
otherwise.
Here, path is a "working copy root" if its parent directory is not a WC or if its parent directory's repository URL is not the parent of its own repository URL. Thus, a switched subtree is considered to be a working copy root. Also, a deleted tree-conflict victim is considered a "working copy root" because it has no URL.
If path is not found, return the error SVN_ERR_ENTRY_NOT_FOUND
.
Use pool for any intermediate allocations.
TRUE
. svn_error_t* svn_wc_locked | ( | svn_boolean_t * | locked, |
const char * | path, | ||
apr_pool_t * | pool | ||
) |
Set *locked to non-zero if path is locked, else set it to zero.
svn_error_t* svn_wc_mark_missing_deleted | ( | const char * | path, |
svn_wc_adm_access_t * | parent, | ||
apr_pool_t * | pool | ||
) |
Mark missing path as 'deleted' in its parent's list of entries.
Return SVN_ERR_WC_PATH_FOUND
if path isn't actually missing.
svn_boolean_t svn_wc_match_ignore_list | ( | const char * | str, |
apr_array_header_t * | list, | ||
apr_pool_t * | pool | ||
) |
Return TRUE iff str matches any of the elements of list, a list of zero or more ignore patterns.
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.
svn_error_t* svn_wc_merge | ( | const char * | left, |
const char * | right, | ||
const char * | merge_target, | ||
svn_wc_adm_access_t * | adm_access, | ||
const char * | left_label, | ||
const char * | right_label, | ||
const char * | target_label, | ||
svn_boolean_t | dry_run, | ||
enum svn_wc_merge_outcome_t * | merge_outcome, | ||
const char * | diff3_cmd, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_merge2(), but with merge_options set to NULL.
svn_error_t* svn_wc_merge2 | ( | enum svn_wc_merge_outcome_t * | merge_outcome, |
const char * | left, | ||
const char * | right, | ||
const char * | merge_target, | ||
svn_wc_adm_access_t * | adm_access, | ||
const char * | left_label, | ||
const char * | right_label, | ||
const char * | target_label, | ||
svn_boolean_t | dry_run, | ||
const char * | diff3_cmd, | ||
const apr_array_header_t * | merge_options, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_merge3(), but with prop_diff, conflict_func, conflict_baton set to NULL.
svn_error_t* svn_wc_merge3 | ( | enum svn_wc_merge_outcome_t * | merge_outcome, |
const char * | left, | ||
const char * | right, | ||
const char * | merge_target, | ||
svn_wc_adm_access_t * | adm_access, | ||
const char * | left_label, | ||
const char * | right_label, | ||
const char * | target_label, | ||
svn_boolean_t | dry_run, | ||
const char * | diff3_cmd, | ||
const apr_array_header_t * | merge_options, | ||
const apr_array_header_t * | prop_diff, | ||
svn_wc_conflict_resolver_func_t | conflict_func, | ||
void * | conflict_baton, | ||
apr_pool_t * | pool | ||
) |
Given paths to three fulltexts, merge the differences between left and right into merge_target.
(It may help to know that left, right, and merge_target correspond to "OLDER", "YOURS", and "MINE", respectively, in the diff3 documentation.) Use pool for any temporary allocation.
adm_access is an access baton with a write lock for the directory containing merge_target.
This function assumes that left and right are in repository-normal form (linefeeds, with keywords contracted); if necessary, merge_target is temporarily converted to this form to receive the changes, then translated back again.
If merge_target is absent, or present but not under version control, then set *merge_outcome to svn_wc_merge_no_merge
and return success without merging anything. (The reasoning is that if the file is not versioned, then it is probably unrelated to the changes being considered, so they should not be merged into it.)
dry_run determines whether the working copy is modified. When it is FALSE
the merge will cause merge_target to be modified, when it is TRUE
the merge will be carried out to determine the result but merge_target will not be modified.
If diff3_cmd is non-NULL, then use it as the diff3 command for any merging; otherwise, use the built-in merge code. If merge_options is non-NULL, either pass its elements to diff3_cmd or parse it and use as options to the internal merge code (see svn_diff_file_options_parse()). merge_options must contain const char *
elements.
The outcome of the merge is returned in *merge_outcome. If there is a conflict and dry_run is FALSE
, then attempt to call conflict_func with conflict_baton (if non-NULL). If the conflict callback cannot resolve the conflict, then:
* Put conflict markers around the conflicting regions in merge_target, labeled with left_label, right_label, and target_label. (If any of these labels are NULL
, default values will be used.)
* Copy left, right, and the original merge_target to unique names in the same directory as merge_target, ending with the suffixes ".LEFT_LABEL", ".RIGHT_LABEL", and ".TARGET_LABEL" respectively.
* Mark the entry for merge_target as "conflicted", and track the above mentioned backup files in the entry as well.
Binary case:
If merge_target is a binary file, then no merging is attempted, the merge is deemed to be a conflict. If dry_run is FALSE
the working merge_target is untouched, and copies of left and right are created next to it using left_label and right_label. merge_target's entry is marked as "conflicted", and begins tracking the two backup files. If dry_run is TRUE
no files are changed. The outcome of the merge is returned in *merge_outcome.
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.)
svn_error_t* svn_wc_merge_props | ( | svn_wc_notify_state_t * | state, |
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_hash_t * | baseprops, | ||
const apr_array_header_t * | propchanges, | ||
svn_boolean_t | base_merge, | ||
svn_boolean_t | dry_run, | ||
apr_pool_t * | pool | ||
) |
Same as svn_wc_merge_props2(), but with a conflict_func (and baton) of NULL.
svn_error_t* svn_wc_merge_props2 | ( | svn_wc_notify_state_t * | state, |
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_hash_t * | baseprops, | ||
const apr_array_header_t * | propchanges, | ||
svn_boolean_t | base_merge, | ||
svn_boolean_t | dry_run, | ||
svn_wc_conflict_resolver_func_t | conflict_func, | ||
void * | conflict_baton, | ||
apr_pool_t * | pool | ||
) |
Given a path under version control, merge an array of propchanges into the path's existing properties.
propchanges is an array of svn_prop_t
objects, and baseprops is a hash representing the original set of properties that propchanges is working against. adm_access is an access baton for the directory containing path.
If base_merge is FALSE
only the working properties will be changed, if it is TRUE
both the base and working properties will be changed.
If state is non-NULL, set *state to the state of the properties after the merge.
If conflicts are found when merging working properties, they are described in a temporary .prej file (or appended to an already-existing .prej file), and the entry is marked "conflicted". Base properties are changed unconditionally, if base_merge is TRUE
, they never result in a conflict.
If path is not under version control, return the error SVN_ERR_UNVERSIONED_RESOURCE and don't touch anyone's properties.
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.
svn_error_t* svn_wc_parse_externals_description2 | ( | apr_array_header_t ** | externals_p, |
const char * | parent_directory, | ||
const char * | desc, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_parse_externals_description3() with canonicalize_url set to TRUE
, but returns an array of svn_wc_external_item_t
* objects instead of svn_wc_external_item2_t
* objects.
svn_error_t* svn_wc_parse_externals_description3 | ( | apr_array_header_t ** | externals_p, |
const char * | parent_directory, | ||
const char * | desc, | ||
svn_boolean_t | canonicalize_url, | ||
apr_pool_t * | pool | ||
) |
If externals_p is non-NULL, set *externals_p to an array of svn_wc_external_item2_t
* objects based on desc.
The url member of the objects will be canonicalized if canonicalize_url is TRUE
.
If the format of desc is invalid, don't touch *externals_p and return SVN_ERR_CLIENT_INVALID_EXTERNALS_DESCRIPTION
. Thus, if you just want to check the validity of an externals description, and don't care about the parsed result, pass NULL for externals_p.
The format of desc is the same as for values of the directory property SVN_PROP_EXTERNALS
, which see.
Allocate the table, keys, and values in pool.
Use parent_directory only in constructing error strings.
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 | ||
) |
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 | ||
) |
svn_error_t* svn_wc_process_committed3 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | recurse, | ||
svn_revnum_t | new_revnum, | ||
const char * | rev_date, | ||
const char * | rev_author, | ||
apr_array_header_t * | wcprop_changes, | ||
svn_boolean_t | remove_lock, | ||
const unsigned char * | digest, | ||
apr_pool_t * | pool | ||
) |
svn_error_t* svn_wc_process_committed4 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | recurse, | ||
svn_revnum_t | new_revnum, | ||
const char * | rev_date, | ||
const char * | rev_author, | ||
apr_array_header_t * | wcprop_changes, | ||
svn_boolean_t | remove_lock, | ||
svn_boolean_t | remove_changelist, | ||
const unsigned char * | digest, | ||
apr_pool_t * | pool | ||
) |
svn_error_t* svn_wc_process_committed_queue | ( | svn_wc_committed_queue_t * | queue, |
svn_wc_adm_access_t * | adm_access, | ||
svn_revnum_t | new_revnum, | ||
const char * | rev_date, | ||
const char * | rev_author, | ||
apr_pool_t * | pool | ||
) |
Bump all items in queue to new_revnum after a commit succeeds.
rev_date and rev_author are the (server-side) date and author of the new revision; one or both may be NULL
.
adm_access must be associated with all affected directories, and must hold a write lock in each one.
svn_error_t* svn_wc_prop_get | ( | const svn_string_t ** | value, |
const char * | name, | ||
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_pool_t * | pool | ||
) |
Set *value to the value of property name for path, allocating *value in pool.
If no such prop, set *value to NULL
. name may be a regular or wc property; if it is an entry property, return the error SVN_ERR_BAD_PROP_KIND
. adm_access is an access baton set that contains path.
svn_error_t* svn_wc_prop_list | ( | apr_hash_t ** | props, |
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_pool_t * | pool | ||
) |
Set *props to a hash table mapping char *
names onto svn_string_t *
values for all the regular properties of path.
Allocate the table, names, and values in pool. If the node has no properties, or does not exist in the working copy, then an empty hash is returned. adm_access is an access baton set that contains path.
svn_error_t* svn_wc_prop_set | ( | const char * | name, |
const svn_string_t * | value, | ||
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_pool_t * | pool | ||
) |
Like svn_wc_prop_set2(), but with skip_checks always FALSE.
svn_error_t* svn_wc_prop_set2 | ( | const char * | name, |
const svn_string_t * | value, | ||
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | skip_checks, | ||
apr_pool_t * | pool | ||
) |
Like svn_wc_prop_set3(), but without the notification callbacks.
svn_error_t* svn_wc_prop_set3 | ( | const char * | name, |
const svn_string_t * | value, | ||
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | skip_checks, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | pool | ||
) |
Set property name to value for path, or if value is NULL, remove property name from path.
adm_access is an access baton with a write lock for path.
If skip_checks is TRUE, do no validity checking. But if skip_checks is FALSE, and name is not a valid property for path, return an error, either SVN_ERR_ILLEGAL_TARGET
(if the property is not appropriate for path), or SVN_ERR_BAD_MIME_TYPE
(if name is "svn:mime-type", but value is not a valid mime-type).
name may be a wc property or a regular property; but if it is an entry property, return the error SVN_ERR_BAD_PROP_KIND
, even if skip_checks is TRUE.
For each file or directory operated on, notify_func will be called with its path and the notify_baton. notify_func may be NULL
if you are not interested in this information.
Use pool for temporary allocation.
svn_error_t* svn_wc_props_modified_p | ( | svn_boolean_t * | modified_p, |
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_pool_t * | pool | ||
) |
Set *modified_p to non-zero if path's properties are modified with regard to the base revision, else set modified_p to zero.
adm_access must be an access baton for path.
svn_error_t* svn_wc_queue_committed | ( | svn_wc_committed_queue_t ** | queue, |
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | recurse, | ||
apr_array_header_t * | wcprop_changes, | ||
svn_boolean_t | remove_lock, | ||
svn_boolean_t | remove_changelist, | ||
const unsigned char * | digest, | ||
apr_pool_t * | pool | ||
) |
Same as svn_wc_queue_committed2() but the queue parameter has an extra indirection and digest is supplied instead of a checksum type.
svn_error_t* svn_wc_queue_committed2 | ( | svn_wc_committed_queue_t * | queue, |
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | recurse, | ||
apr_array_header_t * | wcprop_changes, | ||
svn_boolean_t | remove_lock, | ||
svn_boolean_t | remove_changelist, | ||
svn_checksum_t * | checksum, | ||
apr_pool_t * | scratch_pool | ||
) |
Queue committed items to be processed later by svn_wc_process_committed_queue().
All pointer data passed to this function (path, adm_access, wcprop_changes and checksum) should remain valid until the queue has been processed by svn_wc_process_committed_queue().
Record in queue that path will need to be bumped after a commit succeeds. adm_access must hold a write lock appropriate for path.
If non-NULL, wcprop_changes is an array of svn_prop_t *
changes to wc properties; if an svn_prop_t->value
is NULL, then that property is deleted.
If remove_lock is TRUE
, any entryprops related to a repository lock will be removed.
If remove_changelist is TRUE
, any association with a changelist will be removed.
If path is a file and checksum is non-NULL, use checksum as the checksum for the new text base. Otherwise, calculate the checksum if needed.
If recurse is TRUE and path is a directory, then bump every versioned object at or under path. This is usually done for copied trees.
Temporary allocations will be performed in scratch_pool, and persistent allocations will use the same pool as queue used when it was created.
svn_error_t* svn_wc_relocate | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
const char * | from, | ||
const char * | to, | ||
svn_boolean_t | recurse, | ||
svn_wc_relocation_validator_t | validator, | ||
void * | validator_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_relocate2(), but uses svn_wc_relocation_validator_t
.
svn_error_t* svn_wc_relocate2 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
const char * | from, | ||
const char * | to, | ||
svn_boolean_t | recurse, | ||
svn_wc_relocation_validator2_t | validator, | ||
void * | validator_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_relocate3(), but uses svn_wc_relocation_validator2_t
.
svn_error_t* svn_wc_relocate3 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
const char * | from, | ||
const char * | to, | ||
svn_boolean_t | recurse, | ||
svn_wc_relocation_validator3_t | validator, | ||
void * | validator_baton, | ||
apr_pool_t * | pool | ||
) |
Change repository references at path that begin with from to begin with to instead.
Perform necessary allocations in pool. If recurse is TRUE, do so. validator (and its baton, validator_baton), will be called for each newly generated URL.
adm_access is an access baton for the directory containing path.
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.
svn_error_t* svn_wc_resolved_conflict2 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | resolve_text, | ||
svn_boolean_t | resolve_props, | ||
svn_boolean_t | recurse, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_resolved_conflict3(), but without automatic conflict resolution support, and with depth set according to recurse: if recurse is TRUE, depth is svn_depth_infinity
, else it is svn_depth_files
.
svn_error_t* svn_wc_resolved_conflict3 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | resolve_text, | ||
svn_boolean_t | resolve_props, | ||
svn_depth_t | depth, | ||
svn_wc_conflict_choice_t | conflict_choice, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_resolved_conflict4(), but without tree-conflict resolution support.
svn_error_t* svn_wc_resolved_conflict4 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | resolve_text, | ||
svn_boolean_t | resolve_props, | ||
svn_boolean_t | resolve_tree, | ||
svn_depth_t | depth, | ||
svn_wc_conflict_choice_t | conflict_choice, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
Assuming path is under version control and in a state of conflict, then take path *out* of this state.
If resolve_text is TRUE then any text conflict is resolved, if resolve_props is TRUE then any property conflicts are resolved, if resolve_tree is TRUE then any tree conflicts are resolved.
If depth is svn_depth_empty
, act only on path; if svn_depth_files
, resolve path and its conflicted file children (if any); if svn_depth_immediates
, resolve path and all its immediate conflicted children (both files and directories, if any); if svn_depth_infinity
, resolve path and every conflicted file or directory anywhere beneath it.
If conflict_choice is svn_wc_conflict_choose_base
, resolve the conflict with the old file contents; if svn_wc_conflict_choose_mine_full
, use the original working contents; if svn_wc_conflict_choose_theirs_full
, the new contents; and if svn_wc_conflict_choose_merged
, don't change the contents at all, just remove the conflict status, which is the pre-1.5 behavior.
svn_wc_conflict_choose_theirs_conflict
and svn_wc_conflict_choose_mine_conflict
are not legal for binary files or properties.
adm_access is an access baton, with a write lock, for path.
Needless to say, this function doesn't touch conflict markers or anything of that sort -- only a human can semantically resolve a conflict. Instead, this function simply marks a file as "having been resolved", clearing the way for a commit.
The implementation details are opaque, as our "conflicted" criteria might change over time. (At the moment, this routine removes the three fulltext 'backup' files and any .prej file created in a conflict, and modifies path's entry.)
If path is not under version control, return SVN_ERR_ENTRY_NOT_FOUND
. If path isn't in a state of conflict to begin with, do nothing, and return SVN_NO_ERROR
.
If path
was successfully taken out of a state of conflict, report this information to notify_func
(if non-NULL
.) If only text, only property, or only tree conflict resolution was requested, and it was successful, then success gets reported.
svn_error_t* svn_wc_revert | ( | const char * | path, |
svn_wc_adm_access_t * | parent_access, | ||
svn_boolean_t | recursive, | ||
svn_boolean_t | use_commit_times, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_revert2(), but takes an svn_wc_notify_func_t
instead.
svn_error_t* svn_wc_revert2 | ( | const char * | path, |
svn_wc_adm_access_t * | parent_access, | ||
svn_boolean_t | recursive, | ||
svn_boolean_t | use_commit_times, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_revert3(), but with changelists passed as NULL
, and depth set according to recursive: if recursive is TRUE, depth is svn_depth_infinity
; if FALSE, depth is svn_depth_empty
.
svn_error_t* svn_wc_revert3 | ( | const char * | path, |
svn_wc_adm_access_t * | parent_access, | ||
svn_depth_t | depth, | ||
svn_boolean_t | use_commit_times, | ||
const apr_array_header_t * | changelists, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | pool | ||
) |
Revert changes to path.
Perform necessary allocations in pool.
parent_access is an access baton for the directory containing path, unless path is a working copy root (as determined by svn_wc_is_wc_root
), in which case parent_access refers to path itself.
If depth is svn_depth_empty
, revert just path (if a directory, then revert just the properties on that directory). Else if svn_depth_files
, revert path and any files directly under path if it is directory. Else if svn_depth_immediates
, revert all of the preceding plus properties on immediate subdirectories; else if svn_depth_infinity
, revert path and everything under it fully recursively.
changelists is an array of const char *
changelist names, used as a restrictive filter on items reverted; that is, don't revert any item unless it's a member of one of those changelists. If changelists is empty (or altogether NULL
), no changelist filtering occurs.
If cancel_func is non-NULL, call it with cancel_baton at various points during the reversion process. If it returns an error (typically SVN_ERR_CANCELLED
), return that error immediately.
If use_commit_times is TRUE, then all reverted working-files will have their timestamp set to the last-committed-time. If FALSE, the reverted working-files will be touched with the 'now' time.
For each item reverted, notify_func will be called with notify_baton and the path of the reverted item. notify_func may be NULL
if this notification is not needed.
If path is not under version control, return the error SVN_ERR_UNVERSIONED_RESOURCE.
svn_error_t* svn_wc_revision_status | ( | svn_wc_revision_status_t ** | result_p, |
const char * | wc_path, | ||
const char * | trail_url, | ||
svn_boolean_t | committed, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
Set *result_p to point to a new svn_wc_revision_status_t
structure containing a summary of the revision range and status of the working copy at wc_path (not including "externals").
Set (*result_p)->min_rev and (*result_p)->max_rev respectively to the lowest and highest revision numbers in the working copy. If committed is TRUE, summarize the last-changed revisions, else the base revisions.
Set (*result_p)->switched to indicate whether any item in the WC is switched relative to its parent. If trail_url is non-NULL, use it to determine if wc_path itself is switched. It should be any trailing portion of wc_path's expected URL, long enough to include any parts that the caller considers might be changed by a switch. If it does not match the end of wc_path's actual URL, then report a "switched" status.
Set (*result_p)->modified to indicate whether any item is locally modified.
If cancel_func is non-NULL, call it with cancel_baton to determine if the client has cancelled the operation.
Allocate *result_p in pool.
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.
svn_error_t* svn_wc_set_changelist | ( | const char * | path, |
const char * | changelist, | ||
svn_wc_adm_access_t * | adm_access, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
svn_wc_notify_func2_t | notify_func, | ||
void * | notify_baton, | ||
apr_pool_t * | pool | ||
) |
Set path's entry's 'changelist' attribute to changelist iff changelist is not NULL
; otherwise, remove any current changelist assignment from path.
changelist may not be the empty string. adm_access is an access baton set that contains path.
If cancel_func is not NULL
, call it with cancel_baton to determine if the client has cancelled the operation.
If notify_func is not NULL
, call it with notify_baton to report the change (using notification types svn_wc_notify_changelist_set
and svn_wc_notify_changelist_clear
).
SVN_ERR_UNSUPPORTED_FEATURE
.svn_error_t* svn_wc_text_modified_p | ( | svn_boolean_t * | modified_p, |
const char * | filename, | ||
svn_boolean_t | force_comparison, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_pool_t * | pool | ||
) |
Set *modified_p to non-zero if filename's text is modified with regard to the base revision, else set *modified_p to zero.
filename is a path to the file, not just a basename. adm_access must be an access baton for filename.
If force_comparison is TRUE
, this function will not allow early return mechanisms that avoid actual content comparison. Instead, if there is a text base, a full byte-by-byte comparison will be done, and the entry checksum verified as well. (This means that if the text base is much longer than the working file, every byte of the text base will still be examined.)
If filename does not exist, consider it unmodified. If it exists but is not under revision control (not even scheduled for addition), return the error SVN_ERR_ENTRY_NOT_FOUND
.
If filename is unmodified but has a timestamp variation then this function may "repair" filename's text-time by setting it to filename's last modification time.
svn_error_t* svn_wc_translated_file | ( | const char ** | xlated_p, |
const char * | vfile, | ||
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | force_repair, | ||
apr_pool_t * | pool | ||
) |
Same as svn_wc_translated_file2, but will never clean up temporary files.
svn_error_t* svn_wc_translated_file2 | ( | const char ** | xlated_path, |
const char * | src, | ||
const char * | versioned_file, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_uint32_t | flags, | ||
apr_pool_t * | pool | ||
) |
Set xlated_path to a translated copy of src or to src itself if no translation is necessary.
That is, if versioned_file's properties indicate newline conversion or keyword expansion, point *xlated_path to a copy of src whose newlines and keywords are converted using the translation as requested by flags.
When translating to the normal form, inconsistent eol styles will be repaired when appropriate for the given setting. When translating from normal form, no EOL repair is performed (consistency is assumed). This behaviour can be overridden by specifying SVN_WC_TRANSLATE_FORCE_EOL_REPAIR
.
The caller can explicitly request a new file to be returned by setting the SVN_WC_TRANSLATE_FORCE_COPY
flag in flags.
This function is generally used to get a file that can be compared meaningfully against versioned_file's text base, if SVN_WC_TRANSLATE_TO_NF
is specified, against versioned_file itself if SVN_WC_TRANSLATE_FROM_NF
is specified.
Output files are created in the temp file area belonging to versioned_file. By default they will be deleted at pool cleanup.
If SVN_WC_TRANSLATE_NO_OUTPUT_CLEANUP
is specified, the default pool cleanup handler to remove *xlated_path is not registered.
If an error is returned, the effect on *xlated_path is undefined.
svn_error_t* svn_wc_translated_stream | ( | svn_stream_t ** | stream, |
const char * | path, | ||
const char * | versioned_file, | ||
svn_wc_adm_access_t * | adm_access, | ||
apr_uint32_t | flags, | ||
apr_pool_t * | pool | ||
) |
Returns a stream allocated in pool with access to the given path taking the file properties from versioned_file using adm_access.
When translation from normal form is requested (SVN_WC_TRANSLATE_FROM_NF
is specified in flags), path is used as target path and stream read operations are not supported. Conversely, if translation to normal form is requested (SVN_WC_TRANSLATE_TO_NF
is specified in flags), path is used as source path and stream write operations are not supported.
The flags are the same constants as those used for svn_wc_translated_file().
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).
NULL
. svn_error_t* svn_wc_transmit_text_deltas | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | fulltext, | ||
const svn_delta_editor_t * | editor, | ||
void * | file_baton, | ||
const char ** | tempfile, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_transmit_text_deltas2(), but with digest set to NULL.
svn_error_t* svn_wc_transmit_text_deltas2 | ( | const char ** | tempfile, |
unsigned char | digest[], | ||
const char * | path, | ||
svn_wc_adm_access_t * | adm_access, | ||
svn_boolean_t | fulltext, | ||
const svn_delta_editor_t * | editor, | ||
void * | file_baton, | ||
apr_pool_t * | pool | ||
) |
Send the local modifications for versioned file path (with matching file_baton) through editor, then close file_baton afterwards.
Use pool for any temporary allocation and adm_access as an access baton for path.
This process creates a copy of path with keywords and eol untranslated. If tempfile is non-NULL, set *tempfile to the path to this copy. Do not clean up the copy; caller can do that. If digest is non-NULL, put the MD5 checksum of the temporary file into digest, which must point to APR_MD5_DIGESTSIZE
bytes of storage. (The purpose of handing back the tmp copy is that it is usually about to become the new text base anyway, but the installation of the new text base is outside the scope of this function.)
If fulltext, send the untranslated copy of path through editor as full-text; else send it as svndiff against the current text base.
If sending a diff, and the recorded checksum for path's text-base does not match the current actual checksum, then remove the tmp copy (and set *tempfile to NULL if appropriate), and return the error SVN_ERR_WC_CORRUPT_TEXT_BASE
.
void svn_wc_traversed_depths | ( | apr_hash_t ** | depths, |
svn_wc_traversal_info_t * | traversal_info | ||
) |
Set *depths to a hash table mapping const char *
directory names (directories traversed by traversal_info) to const char *
values (the depths of those directories, as converted by svn_depth_to_word()).
traversal_info is obtained from svn_wc_init_traversal_info(), but is only useful after it has been passed through another function, such as svn_wc_crawl_revisions(), svn_wc_get_update_editor(), svn_wc_get_switch_editor(), etc.
The dir names are full paths -- that is, anchor plus target, not target alone. The values are not allocated, they are static constant strings. Although the values are never NULL, not all directories traversed are necessarily listed. For example, directories which did not have an svn:externals property set or modified are not included.
The hashes and keys have the same lifetime as traversal_info.
svn_error_t* svn_wc_walk_entries | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
const svn_wc_entry_callbacks_t * | walk_callbacks, | ||
void * | walk_baton, | ||
svn_boolean_t | show_hidden, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_walk_entries2(), but without cancellation support.
svn_error_t* svn_wc_walk_entries2 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
const svn_wc_entry_callbacks_t * | walk_callbacks, | ||
void * | walk_baton, | ||
svn_boolean_t | show_hidden, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
Similar to svn_wc_walk_entries3(), but without cancellation support or error handling from walk_callbacks, and with depth always set to svn_depth_infinity
.
svn_error_t* svn_wc_walk_entries3 | ( | const char * | path, |
svn_wc_adm_access_t * | adm_access, | ||
const svn_wc_entry_callbacks2_t * | walk_callbacks, | ||
void * | walk_baton, | ||
svn_depth_t | depth, | ||
svn_boolean_t | show_hidden, | ||
svn_cancel_func_t | cancel_func, | ||
void * | cancel_baton, | ||
apr_pool_t * | pool | ||
) |
A generic entry-walker.
Do a potentially recursive depth-first entry-walk beginning on path, which can be a file or dir. Call callbacks in walk_callbacks, passing walk_baton to each. Use pool for looping, recursion, and to allocate all entries returned. adm_access must be an access baton for path.
If depth is svn_depth_empty
, invoke the callbacks on path and return without recursing further. If svn_depth_files
, do the same and invoke the callbacks on file children (if any) of path, then return. If svn_depth_immediates
, do the preceding but also invoke callbacks on immediate subdirectories, then return. If svn_depth_infinity
, recurse fully starting from path.
If cancel_func is non-NULL, call it with cancel_baton to determine if the client has cancelled the operation.
Like our other entries interfaces, entries that are in a 'excluded', 'deleted' or 'absent' state (and not scheduled for re-addition) are not discovered, unless show_hidden is TRUE. Excluded entries are those with their depth set to svn_depth_exclude
.
When a new directory is entered, SVN_WC_ENTRY_THIS_DIR
will always be returned first.
SVN_WC_ENTRY_THIS_DIR
in the 'name' field of the entry.