You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2018/09/30 18:26:49 UTC
svn commit: r1842404 [2/11] - in /subversion/branches/better-pristines: ./
build/ build/ac-macros/ build/generator/ build/generator/templates/
contrib/client-side/svn_load_dirs/ doc/user/ notes/logo/ notes/shelving/
subversion/bindings/javahl/ subversi...
Modified: subversion/branches/better-pristines/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/include/svn_client.h?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/include/svn_client.h (original)
+++ subversion/branches/better-pristines/subversion/include/svn_client.h Sun Sep 30 18:26:47 2018
@@ -1572,11 +1572,11 @@ svn_client_switch(svn_revnum_t *result_r
/** @} */
-/** Callback for svn_client_layout_list()
+/** Callback for svn_client__layout_list()
*
* @warning EXPERIMENTAL.
*/
-typedef svn_error_t * (*svn_client_layout_func_t)(
+typedef svn_error_t * (*svn_client__layout_func_t)(
void *layout_baton,
const char *local_abspath,
const char *repos_root_url,
@@ -1595,13 +1595,13 @@ typedef svn_error_t * (*svn_client_layou
*
* @warning EXPERIMENTAL.
*/
-/*SVN_EXPERIMENTAL*/ /*commented out during development to avoid a warning*/
+SVN_EXPERIMENTAL
svn_error_t *
-svn_client_layout_list(const char *local_abspath,
- svn_client_layout_func_t layout,
- void *layout_baton,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool);
+svn_client__layout_list(const char *local_abspath,
+ svn_client__layout_func_t layout,
+ void *layout_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
/**
@@ -4486,8 +4486,8 @@ svn_client_revert4(const apr_array_heade
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool);
-/** Similar to svn_client_revert4(), but with @a remove_added_from_disk set to
- * FALSE.
+/** Similar to svn_client_revert4(), but with @a added_keep_local set to
+ * TRUE.
*
* @since New in 1.9.
* @deprecated Provided for backwards compatibility with the 1.10 API.
@@ -4610,7 +4610,13 @@ typedef enum svn_client_conflict_option_
svn_client_conflict_option_incoming_move_dir_merge,
/* Options for local move vs incoming edit on merge. */
- svn_client_conflict_option_local_move_file_text_merge
+ svn_client_conflict_option_local_move_file_text_merge,
+ svn_client_conflict_option_local_move_dir_merge, /**< @since New in 1.11. */
+
+ /* Options for local missing vs incoming edit on merge. */
+ svn_client_conflict_option_sibling_move_file_text_merge, /**< @since New in 1.11. */
+ svn_client_conflict_option_sibling_move_dir_merge, /**< @since New in 1.11. */
+
} svn_client_conflict_option_id_t;
/**
@@ -4631,26 +4637,45 @@ svn_client_conflict_option_set_merged_pr
const svn_string_t *merged_propval);
/**
- * Get a list of possible repository paths which can be applied to the
- * svn_client_conflict_option_incoming_move_file_text_merge or
- * svn_client_conflict_option_incoming_move_dir_merge resolution
- * @a option. (If a different option is passed in, this function will
- * raise an assertion failure.)
- *
- * In some situations, there can be multiple possible destinations for an
- * incoming move. One such situation is where a file was copied and moved
- * in the same revision: svn cp a b; svn mv a c; svn commit
+ * Get a list of possible repository paths which can be applied to @a option.
+ *
+ * In some situations, there can be multiple possible destinations for a move.
+ * One such situation is where a file was copied and moved in the same revision:
+ * svn cp a b; svn mv a c; svn commit
* When this move is merged elsewhere, both b and c will appear as valid move
* destinations to the conflict resolver. To resolve such ambiguity, the client
* may call this function to obtain a list of possible destinations the user
* may choose from.
*
+ * @a *possible_moved_to_repos_relpaths 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.
+ *
* The array is allocated in @a result_pool and will have "const char *"
* elements pointing to strings also allocated in @a result_pool.
* All paths are relpaths, and relative to the repository root.
*
- * @see svn_client_conflict_option_set_moved_to_repos_relpath()
+ * @see svn_client_conflict_option_set_moved_to_repos_relpath2()
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(
+ apr_array_header_t **possible_moved_to_repos_relpaths,
+ svn_client_conflict_option_t *option,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Get a list of possible repository paths which can be applied to the
+ * svn_client_conflict_option_incoming_move_file_text_merge, or the
+ * svn_client_conflict_option_incoming_move_dir_merge resolution @a option.
+ *
+ * In SVN 1.10, if a different option is passed in, this function will
+ * raise an assertion failure. Otherwise this function behaves just like
+ * svn_client_conflict_option_get_moved_to_repos_relpath_candidates2().
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_get_moved_to_repos_relpath_candidates2()
*/
svn_error_t *
svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
@@ -4660,10 +4685,9 @@ svn_client_conflict_option_get_moved_to_
apr_pool_t *scratch_pool);
/**
- * Set the preferred moved target repository path for the
- * svn_client_conflict_option_incoming_move_file_text_merge or
- * svn_client_conflict_option_incoming_move_dir_merge resolution option.
- *
+ * Set the preferred moved target repository path. If @a option is not
+ * applicable to a moved target repository 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_repos_relpath_candidates().
*
@@ -4672,7 +4696,23 @@ svn_client_conflict_option_get_moved_to_
* svn_client_conflict_option_get_description(). Call these functions again
* to get updated descriptions containing the newly selected move target.
*
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_set_moved_to_repos_relpath2(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Like svn_client_conflict_option_set_moved_to_repos_relpath2(), except
+ * that in SVN 1.10 it raises an assertion failure if an option other
+ * than svn_client_conflict_option_incoming_move_file_text_merge or
+ * svn_client_conflict_option_incoming_move_dir_merge is passed.
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_set_moved_to_repos_relpath2()
*/
svn_error_t *
svn_client_conflict_option_set_moved_to_repos_relpath(
@@ -4683,24 +4723,45 @@ svn_client_conflict_option_set_moved_to_
/**
* Get a list of possible moved-to abspaths in the working copy which can be
- * applied to the svn_client_conflict_option_incoming_move_file_text_merge
- * or svn_client_conflict_option_incoming_move_dir_merge resolution @a option.
- * (If a different option is passed in, this function will raise an assertion
- * failure.)
- *
- * All paths in the returned list correspond to the repository path which
- * is assumed to be the destination of the incoming move operation.
- * To support cases where this destination path is ambiguous, the client may
- * call svn_client_conflict_option_get_moved_to_repos_relpath_candidates()
- * before calling this function to let the user select a repository path first.
+ * applied to @a option.
+ *
+ * All working copy paths in the returned list correspond to one repository
+ * path which is be one of the possible destinations of a move operation.
+ * More than one repository-side move target candidate may exist; call
+ * 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.
+ *
* If no possible moved-to paths can be found, return an empty array.
* This doesn't mean that no move happened in the repository. It is possible
* that the move destination is outside the scope of the current working copy,
* for example, in which case the conflict must be resolved in some other way.
*
- * @see svn_client_conflict_option_set_moved_to_abspath()
+ * @see svn_client_conflict_option_set_moved_to_abspath2()
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_get_moved_to_abspath_candidates2(
+ apr_array_header_t **possible_moved_to_abspaths,
+ svn_client_conflict_option_t *option,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Get a list of possible moved-to abspaths in the working copy which can be
+ * svn_client_conflict_option_incoming_move_file_text_merge, or the
+ * svn_client_conflict_option_incoming_move_dir_merge resolution @a option.
+ *
+ * In SVN 1.10, if a different option is passed in, this function will
+ * raise an assertion failure. Otherwise this function behaves just like
+ * svn_client_conflict_option_get_moved_to_abspath_candidates2().
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_get_moved_to_abspath_candidates2()
*/
svn_error_t *
svn_client_conflict_option_get_moved_to_abspath_candidates(
@@ -4710,14 +4771,34 @@ svn_client_conflict_option_get_moved_to_
apr_pool_t *scratch_pool);
/**
- * Set the preferred moved target abspath for the
- * svn_client_conflict_option_incoming_move_file_text_merge or
- * svn_client_conflict_option_incoming_move_dir_merge resolution option.
+ * 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_candidates().
+ * 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
+ * to get updated descriptions containing the newly selected move target.
+ *
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_set_moved_to_abspath2(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Like svn_client_conflict_option_set_moved_to_abspath2(), except that
+ * in SVN 1.10 this function raises an assertion failure if an option
+ * other than svn_client_conflict_option_incoming_move_file_text_merge or
+ * svn_client_conflict_option_incoming_move_dir_merge is passed.
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_set_moved_to_abspath2()
*/
svn_error_t *
svn_client_conflict_option_set_moved_to_abspath(
@@ -6906,38 +6987,36 @@ svn_client_cat(svn_stream_t *out,
/** A shelf.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
-typedef struct svn_client_shelf_t
+typedef struct svn_client__shelf_t
{
/* Public fields (read-only for public use) */
const char *name;
- int max_version; /** @deprecated */
+ int max_version; /**< @deprecated */
/* Private fields */
const char *wc_root_abspath;
const char *shelves_dir;
- apr_hash_t *revprops; /* non-null; allocated in POOL */
+ apr_hash_t *revprops; /**< non-null; allocated in POOL */
svn_client_ctx_t *ctx;
apr_pool_t *pool;
-} svn_client_shelf_t;
+} svn_client__shelf_t;
/** One version of a shelved change-set.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
-typedef struct svn_client_shelf_version_t
+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 */
+ svn_client__shelf_t *shelf;
+ apr_time_t mtime; /**< time-stamp of this version */
/* Private fields */
- const char *patch_abspath; /** abspath of the patch file */
- int version_number; /** version number starting from 1 */
-} svn_client_shelf_version_t;
+ 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.
*
@@ -6948,12 +7027,11 @@ typedef struct svn_client_shelf_version_
*
* @a local_abspath is any path in the WC and is used to find the WC root.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_open_or_create(svn_client_shelf_t **shelf_p,
+svn_client__shelf_open_or_create(svn_client__shelf_t **shelf_p,
const char *name,
const char *local_abspath,
svn_client_ctx_t *ctx,
@@ -6965,12 +7043,11 @@ svn_client_shelf_open_or_create(svn_clie
*
* @a local_abspath is any path in the WC and is used to find the WC root.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_open_existing(svn_client_shelf_t **shelf_p,
+svn_client__shelf_open_existing(svn_client__shelf_t **shelf_p,
const char *name,
const char *local_abspath,
svn_client_ctx_t *ctx,
@@ -6980,24 +7057,22 @@ svn_client_shelf_open_existing(svn_clien
*
* If @a shelf is NULL, do nothing; otherwise @a shelf must be an open shelf.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_close(svn_client_shelf_t *shelf,
+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.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_delete(const char *name,
+svn_client__shelf_delete(const char *name,
const char *local_abspath,
svn_boolean_t dry_run,
svn_client_ctx_t *ctx,
@@ -7006,40 +7081,38 @@ svn_client_shelf_delete(const char *name
/** Save the local modifications found by @a paths, @a depth,
* @a changelists as a new version of @a shelf.
*
- * Return the new shelf-version in @a *new_version_p.
+ * 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.
*
- * If there are no local modifications in the specified locations, do not
- * create a new version of @a shelf; set @a *new_version_p to null and
- * return SVN_NO_ERROR. In this case @a shelf->max_version after the call
- * is the same as before the call.
+ * 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.
*
- * @a *new_version_p may be null if that output is not wanted.
+ * This function does not revert the changes from the WC; use
+ * svn_client_shelf_unapply() for that.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_save_new_version2(svn_client_shelf_version_t **new_version_p,
- svn_client_shelf_t *shelf,
+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);
-/** @deprecated Use svn_client_shelf_save_new_version2() instead.
- * @warning EXPERIMENTAL.
- */
-SVN_DEPRECATED
-svn_error_t *
-svn_client_shelf_save_new_version(svn_client_shelf_t *shelf,
- const apr_array_header_t *paths,
- svn_depth_t depth,
- const apr_array_header_t *changelists,
- 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
@@ -7052,36 +7125,25 @@ svn_client_shelf_save_new_version(svn_cl
* will become invalid: attempting to use it will give undefined behaviour.
* The given @a shelf_version will remain valid.
*
- * @since New in 1.X.
* @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,
+svn_client__shelf_delete_newer_versions(svn_client__shelf_t *shelf,
+ svn_client__shelf_version_t *shelf_version,
apr_pool_t *scratch_pool);
-/** @deprecated Use svn_client_shelf_delete_newer_versions() instead.
- * @warning EXPERIMENTAL.
- */
-SVN_DEPRECATED
-svn_error_t *
-svn_client_shelf_set_current_version(svn_client_shelf_t *shelf,
- int version_number,
- apr_pool_t *scratch_pool);
-
/** Return in @a shelf_version an existing version of @a shelf, given its
- * @a version_number. Error if that version doesn't exist.
+ * @a version_number (starting from 1). Error if that version doesn't exist.
*
* There is no need to "close" it after use.
*
- * @since New in 1.X.
* @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,
+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);
@@ -7090,13 +7152,12 @@ svn_client_shelf_version_open(svn_client
*
* Set @a shelf_version to null if no versions exist.
*
- * @since New in 1.X.
* @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,
+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);
@@ -7105,13 +7166,12 @@ svn_client_shelf_get_newest_version(svn_
*
* The versions will be in chronological order, oldest to newest.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_get_all_versions(apr_array_header_t **versions_p,
- svn_client_shelf_t *shelf,
+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);
@@ -7121,20 +7181,19 @@ svn_client_shelf_get_all_versions(apr_ar
* report the full set of notifications about successes and conflicts,
* but leave the WC untouched.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_apply(svn_client_shelf_version_t *shelf_version,
+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 patch for @a file_relpath
+/** Test whether we can successfully apply the changes for @a file_relpath
* in @a shelf_version to the WC.
*
- * Try applying the shelf-version to the WC and set @a *conflict_p to
- * true if any conflict occurs, else to false.
+ * 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.
@@ -7153,38 +7212,25 @@ svn_client_shelf_apply(svn_client_shelf_
*
* Leave the WC untouched.
*
- * @since New in 1.X.
* @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,
+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.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_unapply(svn_client_shelf_version_t *shelf_version,
+svn_client__shelf_unapply(svn_client__shelf_version_t *shelf_version,
svn_boolean_t dry_run,
apr_pool_t *scratch_pool);
-/** Output @a shelf_version as a patch to @a outstream.
- *
- * @since New in 1.X.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_shelf_export_patch(svn_client_shelf_version_t *shelf_version,
- svn_stream_t *outstream,
- apr_pool_t *scratch_pool);
-
/** Set @a *affected_paths to a hash with one entry for each path affected
* by the @a shelf_version.
*
@@ -7193,13 +7239,12 @@ svn_client_shelf_export_patch(svn_client
* (Future possibility: When moves and copies are supported, the hash key
* is the old path and value is the new path.)
*
- * @since New in 1.10, changed in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_paths_changed(apr_hash_t **affected_paths,
- svn_client_shelf_version_t *shelf_version,
+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);
@@ -7210,12 +7255,11 @@ svn_client_shelf_paths_changed(apr_hash_
*
* If @a prop_val is NULL, delete the property (if present).
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_revprop_set(svn_client_shelf_t *shelf,
+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);
@@ -7224,12 +7268,11 @@ svn_client_shelf_revprop_set(svn_client_
*
* This deletes all previous revprops.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_revprop_set_all(svn_client_shelf_t *shelf,
+svn_client__shelf_revprop_set_all(svn_client__shelf_t *shelf,
apr_hash_t *revprop_table,
apr_pool_t *scratch_pool);
@@ -7243,13 +7286,12 @@ svn_client_shelf_revprop_set_all(svn_cli
* The lifetime of the result is limited to that of @a shelf and/or
* of @a result_pool.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_revprop_get(svn_string_t **prop_val,
- svn_client_shelf_t *shelf,
+svn_client__shelf_revprop_get(svn_string_t **prop_val,
+ svn_client__shelf_t *shelf,
const char *prop_name,
apr_pool_t *result_pool);
@@ -7258,13 +7300,12 @@ svn_client_shelf_revprop_get(svn_string_
* The lifetime of the result is limited to that of @a shelf and/or
* of @a result_pool.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_revprop_list(apr_hash_t **props,
- svn_client_shelf_t *shelf,
+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.
@@ -7273,12 +7314,11 @@ svn_client_shelf_revprop_list(apr_hash_t
*
* Similar to svn_client_shelf_revprop_set(... SVN_PROP_REVISION_LOG ...).
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_set_log_message(svn_client_shelf_t *shelf,
+svn_client__shelf_set_log_message(svn_client__shelf_t *shelf,
const char *log_message,
apr_pool_t *scratch_pool);
@@ -7290,24 +7330,22 @@ svn_client_shelf_set_log_message(svn_cli
*
* The result is allocated in @a result_pool.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_get_log_message(char **log_message,
- svn_client_shelf_t *shelf,
+svn_client__shelf_get_log_message(char **log_message,
+ svn_client__shelf_t *shelf,
apr_pool_t *result_pool);
/** Information about a shelf.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
-typedef struct svn_client_shelf_info_t
+typedef struct svn_client__shelf_info_t
{
- apr_time_t mtime; /* mtime of the latest change */
-} 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
@@ -7315,17 +7353,28 @@ typedef struct svn_client_shelf_info_t
*
* @a local_abspath is any path in the WC and is used to find the WC root.
*
- * @since New in 1.X.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_list(apr_hash_t **shelf_infos,
+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
Modified: subversion/branches/better-pristines/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/include/svn_repos.h?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/include/svn_repos.h (original)
+++ subversion/branches/better-pristines/subversion/include/svn_repos.h Sun Sep 30 18:26:47 2018
@@ -1036,7 +1036,10 @@ svn_repos_hooks_setenv(svn_repos_t *repo
*
* @a send_copyfrom_args instructs the driver to send 'copyfrom'
* arguments to the editor's add_file() and add_directory() methods,
- * whenever it deems feasible.
+ * and therefore to send their content as deltas against the copy source,
+ * whenever it deems feasible. The implementation only does so for
+ * add_file(), and only when the file itself is the copy root (not when
+ * the file is part of a copied subtree).
*
* Use @a authz_read_func and @a authz_read_baton (if not @c NULL) to
* avoid sending data through @a editor/@a edit_baton which is not
Modified: subversion/branches/better-pristines/subversion/include/svn_time.h
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/include/svn_time.h?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/include/svn_time.h (original)
+++ subversion/branches/better-pristines/subversion/include/svn_time.h Sun Sep 30 18:26:47 2018
@@ -38,14 +38,21 @@ extern "C" {
/** Convert @a when to a <tt>const char *</tt> representation allocated
- * in @a pool. Use svn_time_from_cstring() for the reverse
- * conversion.
+ * in @a pool.
+ *
+ * @see svn_time_from_cstring() for the reverse conversion.
*/
const char *
svn_time_to_cstring(apr_time_t when,
apr_pool_t *pool);
/** Convert @a data to an @c apr_time_t @a when.
+ *
+ * @see svn_time_to_cstring() for the reverse conversion.
+ *
+ * @deprecated Also accepts a format that was used before Subversion 0.14.
+ * See implementation for details. Use of this format is deprecated.
+ *
* Use @a pool for temporary memory allocation.
*/
svn_error_t *
Modified: subversion/branches/better-pristines/subversion/include/svn_version.h
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/include/svn_version.h?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/include/svn_version.h (original)
+++ subversion/branches/better-pristines/subversion/include/svn_version.h Sun Sep 30 18:26:47 2018
@@ -61,7 +61,7 @@ extern "C" {
* Modify when new functionality is added or new interfaces are
* defined, but all changes are backward compatible.
*/
-#define SVN_VER_MINOR 11
+#define SVN_VER_MINOR 12
/**
* Patch number.
Modified: subversion/branches/better-pristines/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/include/svn_wc.h?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/include/svn_wc.h (original)
+++ subversion/branches/better-pristines/subversion/include/svn_wc.h Sun Sep 30 18:26:47 2018
@@ -7646,8 +7646,8 @@ svn_wc_revert6(svn_wc_context_t *wc_ctx,
void *notify_baton,
apr_pool_t *scratch_pool);
-/** Similar to svn_wc_revert6() but with @a remove_added_from_disk always
- * set to FALSE.
+/** Similar to svn_wc_revert6() but with @a added_keep_local always
+ * set to TRUE.
*
* @since New in 1.9.
* @deprecated Provided for backward compatibility with the 1.10 API.
Modified: subversion/branches/better-pristines/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c (original)
+++ subversion/branches/better-pristines/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c Sun Sep 30 18:26:47 2018
@@ -118,6 +118,8 @@ password_get_gnome_keyring(svn_boolean_t
{
GError *gerror = NULL;
gchar *gpassword;
+
+ *done = FALSE;
if (!available_collection(non_interactive, pool))
return SVN_NO_ERROR;
@@ -129,6 +131,7 @@ password_get_gnome_keyring(svn_boolean_t
NULL);
if (gerror)
{
+ /* ### TODO: return or log the error? */
g_error_free(gerror);
}
else if (gpassword)
@@ -156,6 +159,8 @@ password_set_gnome_keyring(svn_boolean_t
GError *gerror = NULL;
gboolean gstatus;
+ *done = FALSE;
+
if (!available_collection(non_interactive, pool))
return SVN_NO_ERROR;
@@ -170,6 +175,7 @@ password_set_gnome_keyring(svn_boolean_t
NULL);
if (gerror)
{
+ /* ### TODO: return or log the error? */
g_error_free(gerror);
}
else if (gstatus)
Modified: subversion/branches/better-pristines/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/libsvn_client/client.h?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/libsvn_client/client.h (original)
+++ subversion/branches/better-pristines/subversion/libsvn_client/client.h Sun Sep 30 18:26:47 2018
@@ -682,34 +682,6 @@ svn_client__get_diff_editor2(const svn_d
/* ---------------------------------------------------------------- */
-/*** Editor for diff summary ***/
-
-/* Set *DIFF_PROCESSOR to a diff processor that will report a diff summary
- to SUMMARIZE_FUNC.
-
- P_ROOT_RELPATH will return a pointer to a string that must be set to
- the root of the operation before the processor is called.
-
- ORIGINAL_PATH specifies the original path and will be used with
- **ANCHOR_PATH to create paths as the user originally provided them
- to the diff function.
-
- SUMMARIZE_FUNC is called with SUMMARIZE_BATON as parameter by the
- created callbacks for each changed item.
-*/
-svn_error_t *
-svn_client__get_diff_summarize_callbacks(
- const svn_diff_tree_processor_t **diff_processor,
- const char ***p_root_relpath,
- svn_client_diff_summarize_func_t summarize_func,
- void *summarize_baton,
- const char *original_target,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/* ---------------------------------------------------------------- */
-
-
/*** Copy Stuff ***/
/* This structure is used to associate a specific copy or move SRC with a
@@ -1122,34 +1094,16 @@ svn_client__resolve_conflicts(svn_boolea
*
* No copy or move information is reported to the diff processor.
*
- * If both LEFT_ABSPATH and RIGHT_ABSPATH are directories on disk:
- * set *ROOT_RELPATH to "" and
- * set *ROOT_IS_DIR to TRUE and
- * send diff processor relpaths relative to LEFT_ABSPATH
- * (which is the same as relative to RIGHT_ABSPATH);
- * else:
- * set *ROOT_RELPATH to the basename of LEFT_ABSPATH and
- * set *ROOT_IS_DIR to FALSE and
- * send diff processor relpaths relative to the parent of LEFT_ABSPATH
- * (so they all start with a basename(LEFT_ABSPATH) component).
- *
- * As any children reached by recursion are matched by name, a diff
- * processor relpath applies equally to both sides of the diff, except
- * for its first component in the latter case above.
- *
- * Assignments to *ROOT_RELPATH and *ROOT_IS_DIR are made before the first
- * call to DIFF_PROCESSOR. Each of ROOT_RELPATH and ROOT_IS_DIR may be NULL
- * if not wanted.
+ * Anchor the DIFF_PROCESSOR at the requested diff targets (LEFT_ABSPATH,
+ * RIGHT_ABSPATH). As any children reached by recursion are matched by
+ * name, a diff processor relpath applies equally to both sides of the diff.
*/
svn_error_t *
-svn_client__arbitrary_nodes_diff(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- const char *left_abspath,
+svn_client__arbitrary_nodes_diff(const char *left_abspath,
const char *right_abspath,
svn_depth_t depth,
const svn_diff_tree_processor_t *diff_processor,
svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
apr_pool_t *scratch_pool);