summaryrefslogtreecommitdiff
path: root/subversion/include/svn_client.h
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/include/svn_client.h')
-rw-r--r--subversion/include/svn_client.h484
1 files changed, 29 insertions, 455 deletions
diff --git a/subversion/include/svn_client.h b/subversion/include/svn_client.h
index 57a5208..c8bc74b 100644
--- a/subversion/include/svn_client.h
+++ b/subversion/include/svn_client.h
@@ -761,7 +761,7 @@ typedef svn_error_t *(*svn_client_get_commit_log_t)(
* of the byte sequences LF ("\n"), CR ("\n"), CR LF ("\r\n") ends a line
* and is not included in @a line. The @a line content can include all other
* byte values including zero (ASCII NUL).
- *
+ *
* @note That is how line splitting is done on the final file content, from
* which this callback is driven. It is not entirely clear whether the line
* splitting used to calculate diffs between each revision and assign a
@@ -4479,6 +4479,10 @@ svn_client_relocate(const char *dir,
* removed from the working copy. Otherwise, all items are reverted and
* their on-disk state changed to match.
*
+ * Consult the @c SVN_CONFIG_OPTION_USE_COMMIT_TIMES option in @a ctx to
+ * determine whether or not to revert timestamp to the time of last
+ * commit ('use-commit-times = yes').
+ *
* If @a ctx->notify_func2 is non-NULL, then for each item reverted,
* call @a ctx->notify_func2 with @a ctx->notify_baton2 and the path of
* the reverted item.
@@ -4642,7 +4646,7 @@ typedef enum svn_client_conflict_option_id_t {
/**
* Set a merged property value on @a option to @a merged_propval.
- *
+ *
* Setting the merged value is required before resolving the property
* conflict using an option with ID svn_client_conflict_option_merged_text.
*
@@ -4711,7 +4715,7 @@ svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
*
* @a preferred_move_target_idx must be a valid index into the list returned
* by svn_client_conflict_option_get_moved_to_repos_relpath_candidates().
- *
+ *
* This function can be called multiple times.
* It affects the output of svn_client_conflict_tree_get_description() and
* svn_client_conflict_option_get_description(). Call these functions again
@@ -4752,7 +4756,7 @@ svn_client_conflict_option_set_moved_to_repos_relpath(
* svn_client_conflict_option_get_moved_to_repos_relpath_candidates() before
* calling this function to let the user select a repository path first.
* Otherwise, one of the repository-side paths will be selected internally.
- *
+ *
* @a *possible_moved_to_abspaths is set to NULL if the @a option does not
* support multiple move targets. API users may assume that only one option
* among those which can be applied to a conflict supports move targets.
@@ -4794,10 +4798,10 @@ svn_client_conflict_option_get_moved_to_abspath_candidates(
/**
* Set the preferred moved target working copy path. If @a option is not
* applicable to a moved target working copy path, do nothing.
- *
+ *
* @a preferred_move_target_idx must be a valid index into the list
* returned by svn_client_conflict_option_get_moved_to_abspath_candidates2().
- *
+ *
* This function can be called multiple times.
* It affects the output of svn_client_conflict_tree_get_description() and
* svn_client_conflict_option_get_description(). Call these functions again
@@ -4843,7 +4847,7 @@ svn_client_conflict_option_find_by_id(
/**
* Return a conflict for the conflicted path @a local_abspath.
- *
+ *
* @since New in 1.10.
*/
svn_error_t *
@@ -4858,7 +4862,7 @@ svn_client_conflict_get(svn_client_conflict_t **conflict,
*
* The lifetime of @a conflict is limited. Its allocation in
* memory will not persist beyond this callback's execution.
- *
+ *
* @since New in 1.10.
*/
typedef svn_error_t *(*svn_client_conflict_walk_func_t)(
@@ -4871,12 +4875,12 @@ typedef svn_error_t *(*svn_client_conflict_walk_func_t)(
* Pass each conflict found during the walk to the @a conflict_walk_func
* callback, along with @a conflict_walk_func_baton.
* Use cancellation and notification support provided by client context @a ctx.
- *
+ *
* This callback may choose to resolve the conflict. If the act of resolving
* a conflict creates new conflicts within the walked working copy (as might
* be the case for some tree conflicts), the callback will be invoked for each
* such new conflict as well.
- *
+ *
* @since New in 1.10.
*/
svn_error_t *
@@ -4896,7 +4900,7 @@ svn_client_conflict_walk(const char *local_abspath,
* It contains the names of conflicted properties. If no property conflict
* exists, the array will contain no elements.
*
-* @since New in 1.10.
+* @since New in 1.10.
*/
svn_error_t *
svn_client_conflict_get_conflicted(svn_boolean_t *text_conflicted,
@@ -5079,7 +5083,7 @@ svn_client_conflict_option_get_description(svn_client_conflict_option_t *option,
* Client implementations which aim to avoid excessive interactive prompting
* may wish to try a recommended resolution option before falling back to
* asking the user which option to use.
- *
+ *
* Conflict resolution with a recommended option is not guaranteed to succeed.
* Clients should check for errors when trying to resolve a conflict and fall
* back to other options and/or interactive prompting when the recommended
@@ -5097,7 +5101,7 @@ svn_client_conflict_get_recommended_option_id(svn_client_conflict_t *conflict);
* Return the absolute path to the conflicted working copy node described
* by @a conflict.
*
- * @since New in 1.10.
+ * @since New in 1.10.
*/
const char *
svn_client_conflict_get_local_abspath(svn_client_conflict_t *conflict);
@@ -5106,7 +5110,7 @@ svn_client_conflict_get_local_abspath(svn_client_conflict_t *conflict);
* Return the operation during which the conflict described by @a
* conflict was recorded.
*
- * @since New in 1.10.
+ * @since New in 1.10.
*/
svn_wc_operation_t
svn_client_conflict_get_operation(svn_client_conflict_t *conflict);
@@ -5114,8 +5118,8 @@ svn_client_conflict_get_operation(svn_client_conflict_t *conflict);
/**
* Return the action an update, switch, or merge operation attempted to
* perform on the working copy node described by @a conflict.
- *
- * @since New in 1.10.
+ *
+ * @since New in 1.10.
*/
svn_wc_conflict_action_t
svn_client_conflict_get_incoming_change(svn_client_conflict_t *conflict);
@@ -5128,14 +5132,14 @@ svn_client_conflict_get_incoming_change(svn_client_conflict_t *conflict);
* modifications in the working copy. During merge operations it may
* additionally be part of the history of the merge target branch, anywhere
* between the common ancestor revision and the working copy revision.
- *
- * @since New in 1.10.
+ *
+ * @since New in 1.10.
*/
svn_wc_conflict_reason_t
svn_client_conflict_get_local_change(svn_client_conflict_t *conflict);
/**
- * Return information about the repository associated with @a conflict.
+ * Return information about the repository associated with @a conflict.
* In case of a foreign-repository merge this will differ from the
* repository information associated with the merge target working copy.
*
@@ -5153,11 +5157,11 @@ svn_client_conflict_get_repos_info(const char **repos_root_url,
* old version of the conflicted node described by @a conflict.
*
* If the repository-relative path is not available, the @a
- * *incoming_old_repos_relpath will be set to @c NULL,
+ * *incoming_old_repos_relpath will be set to @c NULL,
*
* If the peg revision is not available, @a *incoming_old_regrev will be
* set to SVN_INVALID_REVNUM.
- *
+ *
* If the node kind is not available or if the node does not exist at the
* specified path and revision, @a *incoming_old_node_kind will be set to
* svn_node_none.
@@ -5272,7 +5276,7 @@ svn_client_conflict_prop_get_reject_abspath(svn_client_conflict_t *conflict);
* Return the set of property values involved in the conflict of property
* PROPNAME described by @a conflict. If a property value is unavailable the
* corresponding output argument is set to @c NULL.
- *
+ *
* A 3-way diff of these property values can be generated with
* svn_diff_mem_string_diff3(). A merged version with conflict
* markers can be generated with svn_diff_mem_string_output_merge3().
@@ -5340,11 +5344,11 @@ const char *
svn_client_conflict_text_get_mime_type(svn_client_conflict_t *conflict);
/**
- * Return absolute paths to the versions of the text-conflicted file
+ * Return absolute paths to the versions of the text-conflicted file
* described by @a conflict.
*
* If a particular content is not available, it is set to @c NULL.
- *
+ *
* ### Should this be returning svn_stream_t instead of paths?
* @since: New in 1.10.
*/
@@ -5615,7 +5619,7 @@ svn_client_copy7(const apr_array_header_t *sources,
/**
* Similar to svn_client_copy7(), but doesn't support meta_data_only
* and cannot pin externals.
- *
+ *
*
* @since New in 1.7.
* @deprecated Provided for backward compatibility with the 1.8 API.
@@ -6999,436 +7003,6 @@ svn_client_cat(svn_stream_t *out,
/** @} end group: cat */
-
-/** Shelving v2, with checkpoints
- *
- * @defgroup svn_client_shelves_checkpoints Shelves and checkpoints
- * @{
- */
-
-/** A shelf.
- *
- * @warning EXPERIMENTAL.
- */
-typedef struct svn_client__shelf_t
-{
- /* Public fields (read-only for public use) */
- const char *name;
- int max_version; /**< @deprecated */
-
- /* Private fields */
- const char *wc_root_abspath;
- const char *shelves_dir;
- apr_hash_t *revprops; /**< non-null; allocated in POOL */
- svn_client_ctx_t *ctx;
- apr_pool_t *pool;
-} svn_client__shelf_t;
-
-/** One version of a shelved change-set.
- *
- * @warning EXPERIMENTAL.
- */
-typedef struct svn_client__shelf_version_t
-{
- /* Public fields (read-only for public use) */
- svn_client__shelf_t *shelf;
- apr_time_t mtime; /**< time-stamp of this version */
-
- /* Private fields */
- const char *files_dir_abspath; /**< abspath of the storage area */
- int version_number; /**< version number starting from 1 */
-} svn_client__shelf_version_t;
-
-/** Open an existing shelf or create a new shelf.
- *
- * Create a new shelf (containing no versions) if a shelf named @a name
- * is not found.
- *
- * The shelf should be closed after use by calling svn_client_shelf_close().
- *
- * @a local_abspath is any path in the WC and is used to find the WC root.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_open_or_create(svn_client__shelf_t **shelf_p,
- const char *name,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool);
-
-/** Open an existing shelf named @a name, or error if it doesn't exist.
- *
- * The shelf should be closed after use by calling svn_client_shelf_close().
- *
- * @a local_abspath is any path in the WC and is used to find the WC root.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_open_existing(svn_client__shelf_t **shelf_p,
- const char *name,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool);
-
-/** Close @a shelf.
- *
- * If @a shelf is NULL, do nothing; otherwise @a shelf must be an open shelf.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_close(svn_client__shelf_t *shelf,
- apr_pool_t *scratch_pool);
-
-/** Delete the shelf named @a name, or error if it doesn't exist.
- *
- * @a local_abspath is any path in the WC and is used to find the WC root.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_delete(const char *name,
- const char *local_abspath,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool);
-
-/** Get an editor that, when driven, will store changes in @a shelf_version.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_mods_editor(const svn_delta_editor_t **editor_p,
- void **edit_baton_p,
- svn_client__shelf_version_t *shelf_version,
- svn_wc_notify_func2_t notify_func,
- void *notify_baton,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool);
-
-/** Save the local modifications found by @a paths, @a depth,
- * @a changelists as a new version of @a shelf.
- *
- * If any paths are shelved, create a new shelf-version and return the new
- * shelf-version in @a *new_version_p, else set @a *new_version_p to null.
- * @a new_version_p may be null if that output is not wanted; a new shelf-
- * version is still saved and may be found through @a shelf.
- *
- * @a paths are relative to the CWD, or absolute.
- *
- * For each successfully shelved path: call @a shelved_func (if not null)
- * with @a shelved_baton.
- *
- * If any paths cannot be shelved: if @a not_shelved_func is given, call
- * it with @a not_shelved_baton for each such path, and still create a new
- * shelf-version if any paths are shelved.
- *
- * This function does not revert the changes from the WC; use
- * svn_client_shelf_unapply() for that.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_save_new_version3(svn_client__shelf_version_t **new_version_p,
- svn_client__shelf_t *shelf,
- const apr_array_header_t *paths,
- svn_depth_t depth,
- const apr_array_header_t *changelists,
- svn_client_status_func_t shelved_func,
- void *shelved_baton,
- svn_client_status_func_t not_shelved_func,
- void *not_shelved_baton,
- apr_pool_t *scratch_pool);
-
-/** Delete all newer versions of @a shelf newer than @a shelf_version.
- *
- * If @a shelf_version is null, delete all versions of @a shelf. (The
- * shelf will still exist, with any log message and other revprops, but
- * with no versions in it.)
- *
- * Leave the shelf's log message and other revprops unchanged.
- *
- * Any #svn_client__shelf_version_t object that refers to a deleted version
- * will become invalid: attempting to use it will give undefined behaviour.
- * The given @a shelf_version will remain valid.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_delete_newer_versions(svn_client__shelf_t *shelf,
- svn_client__shelf_version_t *shelf_version,
- apr_pool_t *scratch_pool);
-
-/** Return in @a shelf_version an existing version of @a shelf, given its
- * @a version_number (starting from 1). Error if that version doesn't exist.
- *
- * There is no need to "close" it after use.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_version_open(svn_client__shelf_version_t **shelf_version_p,
- svn_client__shelf_t *shelf,
- int version_number,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/** Return in @a shelf_version the newest version of @a shelf.
- *
- * Set @a shelf_version to null if no versions exist.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_get_newest_version(svn_client__shelf_version_t **shelf_version_p,
- svn_client__shelf_t *shelf,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/** Return in @a versions_p an array of (#svn_client__shelf_version_t *)
- * containing all versions of @a shelf.
- *
- * The versions will be in chronological order, oldest to newest.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_get_all_versions(apr_array_header_t **versions_p,
- svn_client__shelf_t *shelf,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/** Apply @a shelf_version to the WC.
- *
- * If @a dry_run is true, try applying the shelf-version to the WC and
- * report the full set of notifications about successes and conflicts,
- * but leave the WC untouched.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_apply(svn_client__shelf_version_t *shelf_version,
- svn_boolean_t dry_run,
- apr_pool_t *scratch_pool);
-
-/** Test whether we can successfully apply the changes for @a file_relpath
- * in @a shelf_version to the WC.
- *
- * Set @a *conflict_p to true if the changes conflict with the WC state,
- * else to false.
- *
- * If @a file_relpath is not found in @a shelf_version, set @a *conflict_p
- * to FALSE.
- *
- * @a file_relpath is relative to the WC root.
- *
- * A conflict means the shelf cannot be applied successfully to the WC
- * because the change to be applied is not compatible with the current
- * working state of the WC file. Examples are a text conflict, or the
- * file does not exist or is a directory, or the shelf is trying to add
- * the file but it already exists, or trying to delete it but it does not
- * exist.
- *
- * Return an error only if something is broken, e.g. unable to read data
- * from the specified shelf-version.
- *
- * Leave the WC untouched.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_test_apply_file(svn_boolean_t *conflict_p,
- svn_client__shelf_version_t *shelf_version,
- const char *file_relpath,
- apr_pool_t *scratch_pool);
-
-/** Reverse-apply @a shelf_version to the WC.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_unapply(svn_client__shelf_version_t *shelf_version,
- svn_boolean_t dry_run,
- apr_pool_t *scratch_pool);
-
-/** Send committable changes found in a shelf to a delta-editor.
- *
- * Push changes from the @a shelf_version subtree at @a top_relpath
- * to @a editor : @a edit_baton.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_replay(svn_client__shelf_version_t *shelf_version,
- const char *top_relpath,
- const svn_delta_editor_t *editor,
- void *edit_baton,
- svn_wc_notify_func2_t notify_func,
- void *notify_baton,
- apr_pool_t *scratch_pool);
-
-/** Set @a *affected_paths to a hash with one entry for each path affected
- * by the @a shelf_version.
- *
- * The hash key is the path of the affected file, relative to the WC root.
- *
- * (Future possibility: When moves and copies are supported, the hash key
- * is the old path and value is the new path.)
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_paths_changed(apr_hash_t **affected_paths,
- svn_client__shelf_version_t *shelf_version,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/** Set @a shelf's revprop @a prop_name to @a prop_val.
- *
- * This can be used to set or change the shelf's log message
- * (property name "svn:log" or #SVN_PROP_REVISION_LOG).
- *
- * If @a prop_val is NULL, delete the property (if present).
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_revprop_set(svn_client__shelf_t *shelf,
- const char *prop_name,
- const svn_string_t *prop_val,
- apr_pool_t *scratch_pool);
-
-/** Set @a shelf's revprops to @a revprop_table.
- *
- * This deletes all previous revprops.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_revprop_set_all(svn_client__shelf_t *shelf,
- apr_hash_t *revprop_table,
- apr_pool_t *scratch_pool);
-
-/** Get @a shelf's revprop @a prop_name into @a *prop_val.
- *
- * If the property is not present, set @a *prop_val to NULL.
- *
- * This can be used to get the shelf's log message
- * (property name "svn:log" or #SVN_PROP_REVISION_LOG).
- *
- * The lifetime of the result is limited to that of @a shelf and/or
- * of @a result_pool.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_revprop_get(svn_string_t **prop_val,
- svn_client__shelf_t *shelf,
- const char *prop_name,
- apr_pool_t *result_pool);
-
-/** Get @a shelf's revprops into @a props.
- *
- * The lifetime of the result is limited to that of @a shelf and/or
- * of @a result_pool.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_revprop_list(apr_hash_t **props,
- svn_client__shelf_t *shelf,
- apr_pool_t *result_pool);
-
-/** Set the log message in @a shelf to @a log_message.
- *
- * If @a log_message is null, delete the log message.
- *
- * Similar to svn_client_shelf_revprop_set(... SVN_PROP_REVISION_LOG ...).
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_set_log_message(svn_client__shelf_t *shelf,
- const char *log_message,
- apr_pool_t *scratch_pool);
-
-/** Get the log message in @a shelf into @a *log_message.
- *
- * Set @a *log_message to NULL if there is no log message.
- *
- * Similar to svn_client_shelf_revprop_get(... SVN_PROP_REVISION_LOG ...).
- *
- * The result is allocated in @a result_pool.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_get_log_message(char **log_message,
- svn_client__shelf_t *shelf,
- apr_pool_t *result_pool);
-
-/** Information about a shelf.
- *
- * @warning EXPERIMENTAL.
- */
-typedef struct svn_client__shelf_info_t
-{
- apr_time_t mtime; /**< mtime of the latest change */
-} svn_client__shelf_info_t;
-
-/** Set @a *shelf_infos to a hash, keyed by shelf name, of pointers to
- * @c svn_client_shelf_info_t structures, one for each shelf in the
- * given WC.
- *
- * @a local_abspath is any path in the WC and is used to find the WC root.
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_list(apr_hash_t **shelf_infos,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/** Report the shelved status of all the shelved paths in @a shelf_version
- * via @a walk_func(@a walk_baton, ...).
- *
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client__shelf_version_status_walk(svn_client__shelf_version_t *shelf_version,
- const char *wc_relpath,
- svn_wc_status_func4_t walk_func,
- void *walk_baton,
- apr_pool_t *scratch_pool);
-/** @} */
-
/** Changelist commands
*
* @defgroup svn_client_changelist_funcs Client Changelist Functions