You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2022/01/14 14:01:51 UTC
svn commit: r1897034 [13/37] - in /subversion/branches/multi-wc-format: ./ build/ build/ac-macros/ build/generator/ build/generator/swig/ build/generator/templates/ contrib/client-side/ contrib/client-side/svn_load_dirs/ contrib/hook-scripts/ contrib/s...
Modified: subversion/branches/multi-wc-format/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_client.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_client.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_client.h Fri Jan 14 14:01:45 2022
@@ -736,16 +736,11 @@ typedef svn_error_t *(*svn_client_get_co
* @{
*/
-/** Callback type used by svn_client_blame5() to notify the caller
+/** Callback type used by svn_client_blame6() to notify the caller
* that line @a line_no of the blamed file was last changed in @a revision
* which has the revision properties @a rev_props, and that the contents were
* @a line.
*
- * @a start_revnum and @a end_revnum contain the start and end revision
- * number of the entire blame operation, as determined from the repository
- * inside svn_client_blame5(). This can be useful for the blame receiver
- * to format the blame output.
- *
* If svn_client_blame5() was called with @a include_merged_revisions set to
* TRUE, @a merged_revision, @a merged_rev_props and @a merged_path will be
* set, otherwise they will be NULL. @a merged_path will be set to the
@@ -758,6 +753,49 @@ typedef svn_error_t *(*svn_client_get_co
* will be true if the reason there is no blame information is that the line
* was modified locally. In all other cases @a local_change will be false.
*
+ * Character Encoding and Line Splitting:
+ *
+ * It is up to the client to determine the character encoding. The @a line
+ * content is delivered without any encoding conversion. The line splitting
+ * is designed to work with ASCII-compatible encodings including UTF-8. Any
+ * 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
+ * revision number to each line is exactly compatible with this in all cases.
+ *
+ * Blaming files that have <tt>svn:mime-type</tt> set to something other
+ * than <tt>text/...</tt> requires the @a ignore_mime_type flag to be set to
+ * true when calling the svn_client_blame6 function.
+ *
+ * @since New in 1.12.
+ */
+typedef svn_error_t *(*svn_client_blame_receiver4_t)(
+ void *baton,
+ apr_int64_t line_no,
+ svn_revnum_t revision,
+ apr_hash_t *rev_props,
+ svn_revnum_t merged_revision,
+ apr_hash_t *merged_rev_props,
+ const char *merged_path,
+ const svn_string_t *line,
+ svn_boolean_t local_change,
+ apr_pool_t *pool);
+
+/**
+ * Similar to #svn_client_blame_receiver4_t, but with the @a line parameter
+ * as a (const char*) instead of an svn_string_t, and the parameters
+ * @a start_revnum and @a end_revnum contain the start and end revision
+ * number of the entire blame operation, as resolved from the repository
+ * inside svn_client_blame6().
+ *
+ * @deprecated Provided for backward compatibility with the 1.11 API.
+ * To replace @a start_revnum and @a end_revnum, see the corresponding
+ * output parameters in svn_client_blame6().
+ *
* @since New in 1.7.
*/
typedef svn_error_t *(*svn_client_blame_receiver3_t)(
@@ -1221,7 +1259,7 @@ svn_client_args_to_target_array(apr_arra
* #svn_opt_revision_date. <br>
* If no error occurred, return #SVN_NO_ERROR.
*
- * @since New in 1.12.
+ * @since New in 1.15.
*
* @see #svn_depth_t <br> #svn_client_ctx_t <br> @ref clnt_revisions for
* a discussion of operative and peg revisions.
@@ -2945,6 +2983,12 @@ svn_client_log(const apr_array_header_t
* #SVN_RA_CAPABILITY_GET_FILE_REVS_REVERSE) and the client is 1.9.0 or
* newer.
*
+ * Before the first call to @a receiver, set @a *start_revnum_p and
+ * @a *end_revnum_p to the start and end revision number of the entire
+ * blame operation, as resolved from the repository. This can be useful
+ * for the blame receiver to format the blame output. Any or both of these
+ * arguments may be @c NULL.
+ *
* Use @a diff_options to determine how to compare different revisions of the
* target.
*
@@ -2953,8 +2997,33 @@ svn_client_log(const apr_array_header_t
*
* Use @a pool for any temporary allocation.
*
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_client_blame6(svn_revnum_t *start_revnum_p,
+ svn_revnum_t *end_revnum_p,
+ const char *path_or_url,
+ const svn_opt_revision_t *peg_revision,
+ const svn_opt_revision_t *start,
+ const svn_opt_revision_t *end,
+ const svn_diff_file_options_t *diff_options,
+ svn_boolean_t ignore_mime_type,
+ svn_boolean_t include_merged_revisions,
+ svn_client_blame_receiver4_t receiver,
+ void *receiver_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+
+/**
+ * Similar to svn_client_blame6(), but with #svn_client_blame_receiver3_t
+ * as the receiver.
+ *
+ * @deprecated Provided for backwards compatibility with the 1.11 API.
+ *
* @since New in 1.7.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_blame5(const char *path_or_url,
const svn_opt_revision_t *peg_revision,
@@ -2968,9 +3037,8 @@ svn_client_blame5(const char *path_or_ur
svn_client_ctx_t *ctx,
apr_pool_t *pool);
-
/**
- * Similar to svn_client_blame5(), but with #svn_client_blame_receiver3_t
+ * Similar to svn_client_blame5(), but with #svn_client_blame_receiver2_t
* as the receiver.
*
* @deprecated Provided for backwards compatibility with the 1.6 API.
@@ -4235,7 +4303,7 @@ svn_client_mergeinfo_log_eligible(const
* in @a dir_abspath after successful working copy cleanup.
*
* If @a fix_recorded_timestamps is @c TRUE, this function fixes recorded
- * timestamps for unmodified files in the working copy, reducing comparision
+ * timestamps for unmodified files in the working copy, reducing comparison
* time on future checks.
*
* If @a vacuum_pristines is @c TRUE, and @a dir_abspath points to the working
@@ -4274,7 +4342,7 @@ svn_client_vacuum(const char *dir_abspat
* dir_abspath are broken, otherwise a normal write lock is obtained.
*
* If @a fix_recorded_timestamps is @c TRUE, this function fixes recorded
- * timestamps for unmodified files in the working copy, reducing comparision
+ * timestamps for unmodified files in the working copy, reducing comparison
* time on future checks.
*
* If @a clear_dav_cache is @c TRUE, the caching of DAV information for older
@@ -4338,7 +4406,7 @@ svn_client_cleanup(const char *dir,
*
* Use @a scratch_pool for any temporary allocations.
*
- * @since New in 1.12.
+ * @since New in 1.15.
*/
svn_error_t *
svn_client_upgrade2(const char *wcroot_dir,
@@ -4351,7 +4419,7 @@ svn_client_upgrade2(const char *wcroot_d
* supported format.
*
* @since New in 1.7.
- * @deprecated Provided for backward compatibility with the 1.11 API.
+ * @deprecated Provided for backward compatibility with the 1.14 API.
*/
SVN_DEPRECATED
svn_error_t *
@@ -4363,7 +4431,7 @@ svn_client_upgrade(const char *wcroot_di
* Returns the version related to the earliest supported
* working copy metadata format.
*
- * @since New in 1.12.
+ * @since New in 1.15.
*/
const svn_version_t *
svn_client_supported_wc_version(void);
@@ -4465,6 +4533,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.
@@ -4619,11 +4691,16 @@ typedef enum svn_client_conflict_option_
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. */
+ /* Options for local move vs incoming move on merge. */
+ svn_client_conflict_option_both_moved_file_merge, /*< @since New in 1.12 */
+ svn_client_conflict_option_both_moved_file_move_merge, /*< @since New in 1.12 */
+ svn_client_conflict_option_both_moved_dir_merge, /*< @since New in 1.12 */
+ svn_client_conflict_option_both_moved_dir_move_merge, /*< @since New in 1.12 */
} 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.
*
@@ -4692,7 +4769,7 @@ svn_client_conflict_option_get_moved_to_
*
* @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
@@ -4733,7 +4810,7 @@ svn_client_conflict_option_set_moved_to_
* 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.
@@ -4775,10 +4852,10 @@ svn_client_conflict_option_get_moved_to_
/**
* 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
@@ -4824,7 +4901,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 *
@@ -4839,7 +4916,7 @@ svn_client_conflict_get(svn_client_confl
*
* 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)(
@@ -4852,12 +4929,12 @@ typedef svn_error_t *(*svn_client_confli
* 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 *
@@ -4877,7 +4954,7 @@ svn_client_conflict_walk(const char *loc
* 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,
@@ -5060,7 +5137,7 @@ svn_client_conflict_option_get_descripti
* 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
@@ -5078,7 +5155,7 @@ svn_client_conflict_get_recommended_opti
* 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);
@@ -5087,7 +5164,7 @@ svn_client_conflict_get_local_abspath(sv
* 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);
@@ -5095,8 +5172,8 @@ svn_client_conflict_get_operation(svn_cl
/**
* 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);
@@ -5109,14 +5186,14 @@ svn_client_conflict_get_incoming_change(
* 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.
*
@@ -5134,11 +5211,11 @@ svn_client_conflict_get_repos_info(const
* 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.
@@ -5149,7 +5226,7 @@ svn_client_conflict_get_repos_info(const
*
* In case of tree conflicts, this "path@revision" does not necessarily exist
* in the repository, and it does not necessarily represent the incoming
- * change which is responsible for the occurance of the tree conflict.
+ * change which is responsible for the occurrence of the tree conflict.
* The responsible incoming change is generally located somewhere between
* the old and new incoming versions.
*
@@ -5253,7 +5330,7 @@ svn_client_conflict_prop_get_reject_absp
* 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().
@@ -5321,11 +5398,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.
*/
@@ -5596,7 +5673,7 @@ svn_client_copy7(const apr_array_header_
/**
* 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.
@@ -6980,405 +7057,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);
-
-/** 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);
-
-/** 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
@@ -7912,7 +7590,7 @@ svn_client_get_wc_root(const char **wcro
* Set @a *min_revision and @a *max_revision to the lowest and highest
* revision numbers found within @a local_abspath. If @a committed is
* TRUE, set @a *min_revision and @a *max_revision to the lowest and
- * highest comitted (i.e. "last changed") revision numbers,
+ * highest committed (i.e. "last changed") revision numbers,
* respectively. NULL may be passed for either of @a min_revision and
* @a max_revision to indicate the caller's lack of interest in the
* value. Use @a scratch_pool for temporary allocations.
Modified: subversion/branches/multi-wc-format/subversion/include/svn_cmdline.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_cmdline.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_cmdline.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_cmdline.h Fri Jan 14 14:01:45 2022
@@ -341,7 +341,7 @@ svn_cmdline_auth_plaintext_passphrase_pr
* from the future.
*
* @a trust_server_cert_other_failure: If @c TRUE, accept certificates
- * even if any other verification failure than the above occured.
+ * even if any other verification failure than the above occurred.
*
* @a cfg is the @c SVN_CONFIG_CATEGORY_CONFIG configuration, and
* @a cancel_func and @a cancel_baton control the cancellation of the
Modified: subversion/branches/multi-wc-format/subversion/include/svn_compat.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_compat.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_compat.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_compat.h Fri Jan 14 14:01:45 2022
@@ -84,7 +84,7 @@ svn_compat_log_revprops_out_string(const
const svn_string_t **message,
apr_hash_t *revprops);
-/** Simiar to svn_compat_log_revprops_out_string() but returns C-style strings
+/** Similar to svn_compat_log_revprops_out_string() but returns C-style strings
* instead of #svn_string_t.
*
* @since New in 1.5.
Modified: subversion/branches/multi-wc-format/subversion/include/svn_config.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_config.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_config.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_config.h Fri Jan 14 14:01:45 2022
@@ -44,8 +44,8 @@ extern "C" {
/**************************************************************************
*** ***
*** For a description of the SVN configuration file syntax, see ***
- *** your ~/.subversion/README, which is written out automatically by ***
- *** svn_config_ensure(). ***
+ *** your ~/.subversion/README.txt, which is written out automatically ***
+ *** by svn_config_ensure(). ***
*** ***
**************************************************************************/
Modified: subversion/branches/multi-wc-format/subversion/include/svn_delta.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_delta.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_delta.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_delta.h Fri Jan 14 14:01:45 2022
@@ -495,6 +495,10 @@ svn_txdelta_send_contents(const unsigned
* since there's nothing else in the delta application's context to
* supply a path for error messages.)
*
+ * The @a source stream will NOT be closed. The @a target stream will be
+ * closed when the window handler is given a null window to signal the
+ * end of the delta.
+ *
* @note To avoid lifetime issues, @a error_info is copied into
* @a pool or a subpool thereof.
*/
@@ -859,7 +863,7 @@ svn_txdelta_skip_svndiff_window(apr_file
* @c apply_textdelta / @c apply_textdelta_stream and @c close_file
* should not refer to a parent directory baton UNLESS the editor has
* taken precautions to allocate it in a pool of the appropriate
- * lifetime (the @a dir_pool passed to @c open_directory and
+ * lifetime (the @a result_pool passed to @c open_directory and
* @c add_directory definitely does not have the proper lifetime).
* In general, it is recommended to simply avoid keeping a parent
* directory baton in a file baton.
@@ -1285,24 +1289,47 @@ svn_delta_depth_filter_editor(const svn_
/** Callback function type for svn_delta_path_driver().
*
* The handler of this callback is given the callback baton @a
- * callback_baton, @a path which is a relpath relative to the
+ * callback_baton, @a editor and @a edit_baton which represent the
+ * editor being driven, @a relpath which is a relpath relative to the
* root of the edit, and the @a parent_baton which represents
- * path's parent directory as created by the editor passed to
- * svn_delta_path_driver().
+ * @a relpath's parent directory as created by the editor.
*
- * If @a path represents a directory, the handler must return a @a
- * *dir_baton for @a path, generated from the same editor (so that the
- * driver can later close that directory).
- *
- * If, however, @a path represents a file, the handler should NOT
- * return any file batons. It can close any opened or added files
- * immediately, or delay that close until the end of the edit when
- * svn_delta_path_driver() returns.
+ * If the handler deletes the node at @a relpath (and does not replace it
+ * with an added directory) it must set @a *dir_baton to null or leave
+ * it unchanged.
+ *
+ * If the handler opens (or adds) a directory at @a relpath, it must set
+ * @a *dir_baton to the directory baton for @a relpath, generated from
+ * the same editor. The driver will close the directory later.
+ *
+ * If the handler opens (or adds) a file at @a relpath, the handler must
+ * set @a *dir_baton to null or leave it unchanged. The handler must
+ * either close the file immediately, or delay that close until the end
+ * of the edit when svn_delta_path_driver() returns.
*
* Finally, if @a parent_baton is @c NULL, then the root of the edit
* is also one of the paths passed to svn_delta_path_driver(). The
* handler of this callback must call the editor's open_root()
* function and return the top-level root dir baton in @a *dir_baton.
+ *
+ * @since New in 1.12.
+ */
+typedef svn_error_t *(*svn_delta_path_driver_cb_func2_t)(
+ void **dir_baton,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ void *parent_baton,
+ void *callback_baton,
+ const char *relpath,
+ apr_pool_t *pool);
+
+/** Like #svn_delta_path_driver_cb_func2_t but without the @a editor and
+ * @a edit_baton parameters. The user must arrange for the editor to be
+ * passed through @a callback_baton (if required, which it usually is).
+ * And @a path could possibly have a '/' prefix instead of being a relpath;
+ * see the note on svn_delta_path_driver2().
+ *
+ * @deprecated Provided for backward compatibility with the 1.11 API.
*/
typedef svn_error_t *(*svn_delta_path_driver_cb_func_t)(
void **dir_baton,
@@ -1312,23 +1339,50 @@ typedef svn_error_t *(*svn_delta_path_dr
apr_pool_t *pool);
-/** Drive @a editor (with its @a edit_baton) to visit each path in @a paths.
+/** Drive @a editor (with its @a edit_baton) to visit each path in @a relpaths.
+ *
* As each path is hit as part of the editor drive, use
* @a callback_func and @a callback_baton to allow the caller to handle
* the portion of the editor drive related to that path.
*
- * Each path in @a paths is a (const char *) relpath, relative
- * to the root path of the @a edit. The editor drive will be
- * performed in the same order as @a paths. The paths should be sorted
- * using something like svn_sort_compare_paths to ensure that a depth-first
- * pattern is observed for directory/file baton creation. If @a sort_paths
+ * Each path in @a relpaths is a (const char *) relpath, relative
+ * to the root path of the edit. The editor drive will be
+ * performed in the same order as @a relpaths. The paths should be sorted
+ * using something like svn_sort_compare_paths() to ensure that each
+ * directory in the depth-first walk is visited only once. If @a sort_paths
* is set, the function will sort the paths for you. Some callers may need
* further customization of the order (ie. libsvn_delta/compat.c).
*
+ * If the first target path (after any requested sorting) is @c "" (the
+ * root of the edit), the callback function will be responsible for
+ * calling the editor's @c open_root method; otherwise, this function
+ * will call @c open_root.
+ *
* Use @a scratch_pool for all necessary allocations.
*
- * @since New in 1.8.
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_delta_path_driver3(const svn_delta_editor_t *editor,
+ void *edit_baton,
+ const apr_array_header_t *relpaths,
+ svn_boolean_t sort_paths,
+ svn_delta_path_driver_cb_func2_t callback_func,
+ void *callback_baton,
+ apr_pool_t *pool);
+
+/** Like svn_delta_path_driver3() but with a different callback function
+ * signature.
+ *
+ * Optionally, paths in @a paths could have a '/' prefix instead of being
+ * relpaths. If any of them do, then (since 1.12) ALL paths sent to the
+ * callback will have a '/' prefix.
+ *
+ * @deprecated Provided for backward compatibility with the 1.11 API.
+ * @since New in 1.8. Before 1.12, paths sent to the callback were the
+ * exact paths passed in @a paths.
*/
+SVN_DEPRECATED
svn_error_t *
svn_delta_path_driver2(const svn_delta_editor_t *editor,
void *edit_baton,
@@ -1358,6 +1412,80 @@ svn_delta_path_driver(const svn_delta_ed
void *callback_baton,
apr_pool_t *scratch_pool);
+
+/** A state object for the path driver that is obtained from
+ * svn_delta_path_driver_start() and driven by
+ * svn_delta_path_driver_step() and svn_delta_path_driver_finish().
+ *
+ * @since New in 1.12.
+ */
+typedef struct svn_delta_path_driver_state_t svn_delta_path_driver_state_t;
+
+/** Return a path driver object that can drive @a editor (with its
+ * @a edit_baton) to visit a series of paths.
+ *
+ * As each path is hit as part of the editor drive, the path driver will
+ * call @a callback_func and @a callback_baton to allow the caller to handle
+ * the portion of the editor drive related to that path.
+ *
+ * This will not call the editor's open_root method; for that, see
+ * svn_delta_path_driver_step().
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_delta_path_driver_start(svn_delta_path_driver_state_t **state_p,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
+ svn_delta_path_driver_cb_func2_t callback_func,
+ void *callback_baton,
+ apr_pool_t *result_pool);
+
+/** Visit @a relpath.
+ *
+ * @a state is the object returned by svn_delta_path_driver_start().
+ *
+ * @a relpath is a relpath relative to the root path of the edit.
+ *
+ * This function uses the editor and the callback that were originally
+ * supplied to svn_delta_path_driver_start().
+ *
+ * This drives the editor in a depth-first order, closing and then opening
+ * directories if necessary to move from the last visited path to the new
+ * path, as required by the editor driving rules.
+ *
+ * This then calls the callback to allow the caller to handle
+ * the portion of the editor drive related to that path.
+ *
+ * If the first path to visit is @c "" (the root of the edit), the
+ * callback function will be responsible for calling the editor's
+ * @c open_root method; otherwise, this function will call @c open_root.
+ *
+ * The order of paths to visit should in general be sorted using something
+ * like svn_sort_compare_paths() to ensure that each directory in the
+ * depth-first walk is visited only once. Some editors may rely on such a
+ * restriction.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_delta_path_driver_step(svn_delta_path_driver_state_t *state,
+ const char *relpath,
+ apr_pool_t *scratch_pool);
+
+/** Finish driving the editor.
+ *
+ * @a state is the object returned by svn_delta_path_driver_start().
+ *
+ * This drives the editor to close any open directories and then calls
+ * the editor's @c close_edit method.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_delta_path_driver_finish(svn_delta_path_driver_state_t *state,
+ apr_pool_t *scratch_pool);
+
/** @} */
Modified: subversion/branches/multi-wc-format/subversion/include/svn_diff.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_diff.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_diff.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_diff.h Fri Jan 14 14:01:45 2022
@@ -711,7 +711,7 @@ svn_diff_file_output_unified(svn_stream_
* @a conflict_latest to be displayed as conflict markers in the output.
* If @a conflict_original, @a conflict_modified, @a conflict_latest and/or
* @a conflict_separator is @c NULL, a default marker will be displayed.
- * @a conflict_style dictates how conflicts are displayed.
+ * @a conflict_style dictates how conflicts are displayed.
* Uses @a scratch_pool for temporary allocations.
*
* If not @c NULL, call @a cancel_func with @a cancel_baton once or multiple
Modified: subversion/branches/multi-wc-format/subversion/include/svn_dirent_uri.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_dirent_uri.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_dirent_uri.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_dirent_uri.h Fri Jan 14 14:01:45 2022
@@ -60,12 +60,14 @@
* form, except:
*
* - @c svn_dirent_canonicalize()
+ * - @c svn_dirent_canonicalize_safe()
* - @c svn_dirent_is_canonical()
* - @c svn_dirent_internal_style()
* - @c svn_relpath_canonicalize()
+ * - @c svn_relpath_canonicalize_safe()
* - @c svn_relpath_is_canonical()
- * - @c svn_relpath__internal_style()
* - @c svn_uri_canonicalize()
+ * - @c svn_uri_canonicalize_safe()
* - @c svn_uri_is_canonical()
*
* The Subversion codebase also recognizes some other classes of path:
@@ -144,17 +146,47 @@ extern "C" {
#endif /* __cplusplus */
-/** Convert @a dirent from the local style to the canonical internal style.
+/**
+ * Convert @a dirent from the local style to the canonical internal style.
* "Local style" means native path separators and "." for the empty path.
*
* Allocate the result in @a result_pool.
*
+ * @warning This function may call @c abort() if the @a dirent parameter
+ * is not a valid local-style path.
+ * Use svn_dirent_internal_style_safe() for tainted input.
+ *
* @since New in 1.6.
*/
const char *
svn_dirent_internal_style(const char *dirent,
apr_pool_t *result_pool);
+/**
+ * Convert @a dirent from the local style to the canonical internal style
+ * and return it in @a *internal_style_dirent. "Local style" means native
+ * path separators and "." for the empty path.
+ *
+ * Similar to svn_dirent_internal_style() (which see), but returns an error
+ * if the @a dirent can not be canonicalized or of the result does not pass
+ * the svn_dirent_is_canonical() test.
+ *
+ * If the function fails and @a non_canonical_result is not @c NULL, the
+ * result of the failed canonicalization attempt (which may be @c NULL)
+ * will be returned in @a *non_canonical_result.
+ *
+ * Allocates the results in @a result_pool. Uses @a scratch_pool for
+ * temporary allocations.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_dirent_internal_style_safe(const char **internal_style_dirent,
+ const char **non_canonical_result,
+ const char *dirent,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
/** Convert @a dirent from the internal style to the local style.
* "Local style" means native path separators and "." for the empty path.
* If the input is not canonical, the output may not be canonical.
@@ -167,18 +199,6 @@ const char *
svn_dirent_local_style(const char *dirent,
apr_pool_t *result_pool);
-/** Convert @a relpath from the local style to the canonical internal style.
- * "Local style" means native path separators and "." for the empty path.
- *
- * Allocate the result in @a result_pool.
- *
- * @since New in 1.7.
- */
-const char *
-svn_relpath__internal_style(const char *relpath,
- apr_pool_t *result_pool);
-
-
/** Join a base dirent (@a base) with a component (@a component).
*
* If either @a base or @a component is the empty string, then the other
@@ -453,7 +473,8 @@ svn_boolean_t
svn_uri_is_root(const char *uri,
apr_size_t len);
-/** Return a new dirent like @a dirent, but transformed such that some types
+/**
+ * Return a new dirent like @a dirent, but transformed such that some types
* of dirent specification redundancies are removed.
*
* This involves:
@@ -467,14 +488,43 @@ svn_uri_is_root(const char *uri,
*
* Allocate the result in @a result_pool.
*
+ * @warning This function may call @c abort() if @a dirent can not be
+ * canonicalized.
+ * Use svn_dirent_canonicalize_safe() for tainted input.
+ *
* @since New in 1.6.
*/
const char *
svn_dirent_canonicalize(const char *dirent,
apr_pool_t *result_pool);
+/**
+ * Return a new @a *canonical_dirent like @a dirent, but transformed such
+ * that some types of dirent specification redundancies are removed.
+ *
+ * Similar to svn_dirent_canonicalize() (which see), but returns an error
+ * if the @a dirent can not be canonicalized or of the result does not pass
+ * the svn_dirent_is_canonical() test.
+ *
+ * If the function fails and @a non_canonical_result is not @c NULL, the
+ * result of the failed canonicalization attempt (which may be @c NULL)
+ * will be returned in @a *non_canonical_result.
+ *
+ * Allocates the results in @a result_pool. Uses @a scratch_pool for
+ * temporary allocations.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_dirent_canonicalize_safe(const char **canonical_dirent,
+ const char **non_canonical_result,
+ const char *dirent,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
-/** Return a new relpath like @a relpath, but transformed such that some types
+/**
+ * Return a new relpath like @a relpath, but transformed such that some types
* of relpath specification redundancies are removed.
*
* This involves:
@@ -486,14 +536,44 @@ svn_dirent_canonicalize(const char *dire
*
* Allocate the result in @a result_pool.
*
+ * @warning This function may call @c abort() if @a relpath can not be
+ * canonicalized.
+ * Use svn_relpath_canonicalize_safe() for tainted input.
+ *
* @since New in 1.7.
*/
const char *
svn_relpath_canonicalize(const char *relpath,
apr_pool_t *result_pool);
+/**
+ * Return a new @a *canonical_relpath like @a relpath, but transformed such
+ * that some types of relpath specification redundancies are removed.
+ *
+ * Similar to svn_relpath_canonicalize() (which see), but returns an error
+ * if the @a relpath can not be canonicalized or of the result does not
+ * pass the svn_relpath_is_canonical() test.
+ *
+ * If the function fails and @a non_canonical_result is not @c NULL, the
+ * result of the failed canonicalization attempt (which may be @c NULL)
+ * will be returned in @a *non_canonical_result.
+ *
+ * Allocates the results in @a result_pool. Uses @a scratch_pool for
+ * temporary allocations.
+ *
+ * @since New in 1.12.
+ */
+
+svn_error_t *
+svn_relpath_canonicalize_safe(const char **canonical_relpath,
+ const char **non_canonical_result,
+ const char *relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
-/** Return a new uri like @a uri, but transformed such that some types
+
+/**
+ * Return a new uri like @a uri, but transformed such that some types
* of uri specification redundancies are removed.
*
* This involves:
@@ -510,12 +590,41 @@ svn_relpath_canonicalize(const char *rel
*
* Allocate the result in @a result_pool.
*
- * @since New in 1.7.
+ * @warning This function may call @c abort() if @a uri can not be
+ * canonicalized.
+ * Use svn_uri_canonicalize_safe() for tainted input.
+ *
+ * @since New in 1.7.
*/
const char *
svn_uri_canonicalize(const char *uri,
apr_pool_t *result_pool);
+/**
+ * Return a new @a *canonical_uri like @a uri, but transformed such that
+ * some types of uri specification redundancies are removed.
+ *
+ * Similar to svn_uri_canonicalize() (which see), but returns an error if
+ * the @a uri can not be canonicalized or of the result does not pass the
+ * svn_uri_is_canonical() test.
+ *
+ * If the function fails and @a non_canonical_result is not @c NULL, the
+ * result of the failed canonicalization attempt (which may be @c NULL)
+ * will be returned in @a *non_canonical_result.
+ *
+ * Allocates the results in @a result_pool. Uses @a scratch_pool for
+ * temporary allocations.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_uri_canonicalize_safe(const char **canonical_uri,
+ const char **non_canonical_result,
+ const char *uri,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+
/** Return @c TRUE iff @a dirent is canonical.
*
* Use @a scratch_pool for temporary allocations.
Modified: subversion/branches/multi-wc-format/subversion/include/svn_error_codes.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_error_codes.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_error_codes.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_error_codes.h Fri Jan 14 14:01:45 2022
@@ -888,6 +888,21 @@ SVN_ERROR_START
SVN_ERR_FS_CATEGORY_START + 67,
"Content checksums supposedly match but content does not.")
+ /** @since New in 1.13. */
+ SVN_ERRDEF(SVN_ERR_FS_UNRECOGNIZED_IOCTL_CODE,
+ SVN_ERR_FS_CATEGORY_START + 68,
+ "Unrecognized filesystem I/O control code")
+
+ /** @since New in 1.14. */
+ SVN_ERRDEF(SVN_ERR_FS_REP_SHARING_NOT_ALLOWED,
+ SVN_ERR_FS_CATEGORY_START + 69,
+ "Rep-sharing is not allowed.")
+
+ /** @since New in 1.14. */
+ SVN_ERRDEF(SVN_ERR_FS_REP_SHARING_NOT_SUPPORTED,
+ SVN_ERR_FS_CATEGORY_START + 70,
+ "Rep-sharing is not supported.")
+
/* repos errors */
SVN_ERRDEF(SVN_ERR_REPOS_LOCKED,
@@ -1482,6 +1497,11 @@ SVN_ERROR_START
SVN_ERR_MISC_CATEGORY_START + 46,
"LZ4 decompression failed")
+ /** @since New in 1.12. */
+ SVN_ERRDEF(SVN_ERR_CANONICALIZATION_FAILED,
+ SVN_ERR_MISC_CATEGORY_START + 47,
+ "Could not canonicalize path or URI")
+
/* command-line client errors */
SVN_ERRDEF(SVN_ERR_CL_ARG_PARSING_ERROR,
@@ -1769,7 +1789,7 @@ SVN_ERROR_START
SVN_ERRDEF(SVN_ERR_X509_CERT_VERIFY_FAILED,
SVN_ERR_X509_CATEGORY_START + 19,
- "Certficate verification failed")
+ "Certificate verification failed")
SVN_ERROR_END
Modified: subversion/branches/multi-wc-format/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_fs.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_fs.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_fs.h Fri Jan 14 14:01:45 2022
@@ -394,7 +394,7 @@ typedef enum svn_fs_upgrade_notify_actio
svn_fs_upgrade_format_bumped
} svn_fs_upgrade_notify_action_t;
-/** The type of an upgrade notification function. @a number is specifc
+/** The type of an upgrade notification function. @a number is specific
* to @a action (see #svn_fs_upgrade_notify_action_t); @a action is the
* type of action being performed. @a baton is the corresponding baton
* for the notification function, and @a scratch_pool can be used for
@@ -3503,6 +3503,54 @@ svn_fs_info_dup(const void *info,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+/**
+ * A structure specifying the filesystem-specific input/output operation.
+ *
+ * @see svn_fs_ioctl()
+ *
+ * @since New in 1.13.
+ */
+typedef struct svn_fs_ioctl_code_t
+{
+ const char *fs_type;
+ int code;
+} svn_fs_ioctl_code_t;
+
+/**
+ * A convenience macro to declare #svn_fs_ioctl_code_t codes.
+ *
+ * @since New in 1.13.
+ */
+#define SVN_FS_DECLARE_IOCTL_CODE(name, fs_type, code) \
+ static const svn_fs_ioctl_code_t name = { fs_type, code }
+
+/**
+ * Issue a filesystem-specific input/output operation defined by @a ctlcode
+ * (usually, a low-level operation which cannot be expressed by other
+ * filesystem APIs). If @a fs is @c NULL, issue a global operation.
+ * If @a fs is not @c NULL, issue an operation that is specific to this
+ * filesystem instance.
+ *
+ * If the filesystem cannot handle this ioctl code, return the
+ * #SVN_ERR_FS_UNRECOGNIZED_IOCTL_CODE error.
+ *
+ * Allocate the result in @a result_pool, use @a scratch_pool for temporary
+ * allocations.
+ *
+ * @see #svn_fs_ioctl_code_t
+ *
+ * @since New in 1.13.
+ */
+svn_error_t *
+svn_fs_ioctl(svn_fs_t *fs,
+ svn_fs_ioctl_code_t ctlcode,
+ void *input,
+ void **output_p,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
/** @} */
#ifdef __cplusplus
Modified: subversion/branches/multi-wc-format/subversion/include/svn_opt.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_opt.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_opt.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_opt.h Fri Jan 14 14:01:45 2022
@@ -27,6 +27,8 @@
#ifndef SVN_OPT_H
#define SVN_OPT_H
+#include "svn_opt_impl.h"
+
#include <apr.h>
#include <apr_pools.h>
#include <apr_getopt.h>
@@ -443,43 +445,7 @@ svn_opt_subcommand_help(const char *subc
/* Parsing revision and date options. */
-
-/**
- * Various ways of specifying revisions.
- *
- * @note
- * In contexts where local mods are relevant, the `working' kind
- * refers to the uncommitted "working" revision, which may be modified
- * with respect to its base revision. In other contexts, `working'
- * should behave the same as `committed' or `current'.
- */
-enum svn_opt_revision_kind {
- /** No revision information given. */
- svn_opt_revision_unspecified,
-
- /** revision given as number */
- svn_opt_revision_number,
-
- /** revision given as date */
- svn_opt_revision_date,
-
- /** rev of most recent change */
- svn_opt_revision_committed,
-
- /** (rev of most recent change) - 1 */
- svn_opt_revision_previous,
-
- /** .svn/entries current revision */
- svn_opt_revision_base,
-
- /** current, plus local mods */
- svn_opt_revision_working,
-
- /** repository youngest */
- svn_opt_revision_head
-
- /* please update svn_opt__revision_to_string() when extending this enum */
-};
+/* NOTE: svn_opt_revision_kind is defined in svn_opt_impl.h */
/**
* A revision value, which can be specified as a number or a date.
Modified: subversion/branches/multi-wc-format/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_ra.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_ra.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_ra.h Fri Jan 14 14:01:45 2022
@@ -65,7 +65,7 @@ svn_ra_version(void);
* @a close_baton as appropriate.
*
* @a path is relative to the "root" of the session, defined by the
- * @a repos_URL passed to svn_ra_open4() vtable call.
+ * @a repos_URL passed to svn_ra_open5() vtable call.
*
* @a name is the name of the property to fetch. If the property is present,
* then it is returned in @a value. Otherwise, @a *value is set to @c NULL.
@@ -229,7 +229,7 @@ typedef void (*svn_ra_progress_notify_fu
*
* @a revision is the target revision number of the received replay report.
*
- * @a editor and @a edit_baton should provided by the callback implementation.
+ * @a *editor and @a *edit_baton should provided by the callback implementation.
*
* @a replay_baton is the baton as originally passed to replay_range.
*
@@ -253,7 +253,7 @@ typedef svn_error_t *(*svn_ra_replay_rev
*
* @a revision is the target revision number of the received replay report.
*
- * @a editor and @a edit_baton should provided by the callback implementation.
+ * @a editor and @a edit_baton are the values provided by the REVSTART callback.
*
* @a replay_baton is the baton as originally passed to replay_range.
*
@@ -273,7 +273,7 @@ typedef svn_error_t *(*svn_ra_replay_rev
/**
* Callback function that checks if an ra_svn tunnel called
- * @a tunnel_name is handled by the callbakcs or the default
+ * @a tunnel_name is handled by the callbacks or the default
* implementation.
*
* @a tunnel_baton is the baton as originally passed to ra_open.
@@ -369,7 +369,7 @@ typedef struct svn_ra_reporter3_t
* implementor should assume the directory has no entries or props.
*
* This will *override* any previous set_path() calls made on parent
- * paths. @a path is relative to the URL specified in svn_ra_open4().
+ * paths. @a path is relative to the URL specified in svn_ra_open5().
*
* If @a lock_token is non-NULL, it is the lock token for @a path in the WC.
*
@@ -520,7 +520,7 @@ typedef struct svn_ra_reporter_t
/** A collection of callbacks implemented by libsvn_client which allows
* an RA layer to "pull" information from the client application, or
* possibly store information. libsvn_client passes this vtable to
- * svn_ra_open4().
+ * svn_ra_open5().
*
* Each routine takes a @a callback_baton originally provided with the
* vtable.
@@ -710,6 +710,14 @@ typedef struct svn_ra_session_t svn_ra_s
* within the new repository root URL that @a repos_URL pointed to within
* the old repository root URL.
*
+ * If @a redirect_url is not NULL and a @corrected_url is returned, then
+ * @a redirect_url contains a non-canonicalized version of @a corrected_url,
+ * as communicated in the network protocol used by the RA provider.
+ * THe @a redirect_url should be used for to detect redirection loops.
+ * Canonicalization may change the protocol-level URL in a way that
+ * makes detection of redirect loops impossible in some cases since URLs which
+ * are different at the protocol layer could map to the same canonicalized URL.
+ *
* Return @c SVN_ERR_RA_UUID_MISMATCH if @a uuid is non-NULL and not equal
* to the UUID of the repository at @c repos_URL.
*
@@ -728,8 +736,26 @@ typedef struct svn_ra_session_t svn_ra_s
*
* @see svn_client_open_ra_session().
*
+ * @since New in 1.14.
+ */
+svn_error_t *
+svn_ra_open5(svn_ra_session_t **session_p,
+ const char **corrected_url,
+ const char **redirect_url,
+ const char *repos_URL,
+ const char *uuid,
+ const svn_ra_callbacks2_t *callbacks,
+ void *callback_baton,
+ apr_hash_t *config,
+ apr_pool_t *pool);
+
+/** Similar to svn_ra_open5(), but with @a redirect_url always passed
+ * as @c NULL.
+ *
* @since New in 1.7.
+ * @deprecated Provided for backward compatibility with the 1.13 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ra_open4(svn_ra_session_t **session_p,
const char **corrected_url,
@@ -2218,7 +2244,7 @@ svn_ra_has_capability(svn_ra_session_t *
/**
* The capability of a server to automatically remove transaction
- * properties prefixed with SVN_PROP_EPHEMERAL_PREFIX.
+ * properties prefixed with #SVN_PROP_TXN_PREFIX.
*
* @since New in 1.8.
*/
Modified: subversion/branches/multi-wc-format/subversion/include/svn_ra_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_ra_svn.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_ra_svn.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_ra_svn.h Fri Jan 14 14:01:45 2022
@@ -201,7 +201,7 @@ typedef svn_error_t *(*svn_ra_svn_edit_c
* If @a max_out is not 0, error out and close the connection whenever more
* than @a max_out bytes have been send as response to some command.
*
- * @note The limits enforced may vary slightly by +/- the I/O buffer size.
+ * @note The limits enforced may vary slightly by +/- the I/O buffer size.
*
* @note If @a out_stream is an wrapped apr_file_t* the backing file will be
* used for some operations.
Modified: subversion/branches/multi-wc-format/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_repos.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_repos.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_repos.h Fri Jan 14 14:01:45 2022
@@ -679,7 +679,7 @@ svn_repos_fs_type(svn_repos_t *repos,
* The optional @a cancel_func callback will be invoked with
* @a cancel_baton as usual to allow the user to preempt this potentially
* lengthy operation.
- *
+ *
* Use @a scratch_pool for temporary allocations.
*
* @since New in 1.9.
@@ -1595,6 +1595,10 @@ svn_repos_get_commit_editor5(const svn_d
* #SVN_PROP_REVISION_AUTHOR and #SVN_PROP_REVISION_LOG properties,
* respectively. @a user and @a log_msg may both be @c NULL.
*
+ * @note The @a repos_url parameter has been renamed for clarity to
+ * @a repos_url_decoded in svn_repos_get_commit_editor5(), but remains
+ * functionally the same.
+ *
* @since New in 1.4.
*
* @deprecated Provided for backward compatibility with the 1.4 API.
@@ -1960,7 +1964,7 @@ svn_repos_node_location_segments(svn_rep
* @a copyfrom_known is always @c TRUE.
*
* @note To allow for extending this structure in future releases,
- * always use svn_repos_path_change_create() to allocate the stucture.
+ * always use svn_repos_path_change_create() to allocate the structure.
*
* @see svn_fs_path_change3_t
*
@@ -2017,7 +2021,7 @@ typedef svn_error_t *(*svn_repos_path_ch
* A structure to represent all the information about a particular log entry.
*
* @note To allow for extending this structure in future releases,
- * always use svn_repos_log_entry_create() to allocate the stucture.
+ * always use svn_repos_log_entry_create() to allocate the structure.
*
* @since New in 1.10.
*/
@@ -2155,7 +2159,7 @@ typedef svn_error_t *(*svn_repos_log_ent
* (i.e. retrieve none if the array is empty).
*
* If any invocation of @a revision_receiver or @a path_change_receiver
- * returnn an error, return that error immediately and without wrapping it.
+ * return an error, return that error immediately and without wrapping it.
*
* If @a start or @a end is a non-existent revision, return the error
* #SVN_ERR_FS_NO_SUCH_REVISION, without ever invoking @a revision_receiver.
@@ -3360,7 +3364,7 @@ svn_repos_dump_fs4(svn_repos_t *repos,
apr_pool_t *pool);
/**
- * Similar to svn_repos_dump_fs4(), but with @a include_revprops and
+ * Similar to svn_repos_dump_fs4(), but with @a include_revprops and
* @a include_changes both set to @c TRUE and @a filter_func and
* @a filter_baton set to @c NULL.
*
@@ -4147,6 +4151,19 @@ svn_error_t *
svn_repos_authz_initialize(apr_pool_t *pool);
/**
+ * Callback for reporting authz file parsing warnings.
+ *
+ * The implementation may use @a scratch_pool for temporary
+ * allocations but should not assume that the lifetime of that pool
+ * persists past the callback invocation.
+ *
+ * The implementation @e must @e not clear @a error.
+ */
+typedef void (*svn_repos_authz_warning_func_t)(void *baton,
+ const svn_error_t *error,
+ apr_pool_t *scratch_pool);
+
+/**
* Read authz configuration data from @a path (a dirent, an absolute file url
* or a registry path) into @a *authz_p, allocated in @a pool.
*
@@ -4164,8 +4181,31 @@ svn_repos_authz_initialize(apr_pool_t *p
* repository instance. Otherwise, set it to NULL and the repositories will
* be opened as needed.
*
+ * If the @a warning_func callback is not @c NULL, it is called
+ * (with @a warning_baton) to report non-fatal warnings emitted by
+ * the parser.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_repos_authz_read4(svn_authz_t **authz_p,
+ const char *path,
+ const char *groups_path,
+ svn_boolean_t must_exist,
+ svn_repos_t *repos_hint,
+ svn_repos_authz_warning_func_t warning_func,
+ void *warning_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Similar to svn_repos_authz_read3(), but with @a warning_func and
+ * @a warning_baton set to @c NULL.
+ *
* @since New in 1.10.
+ * @deprecated Provided for backward compatibility with the 1.11 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_repos_authz_read3(svn_authz_t **authz_p,
const char *path,
@@ -4206,12 +4246,35 @@ svn_repos_authz_read(svn_authz_t **authz
/**
* Read authz configuration data from @a stream into @a *authz_p,
- * allocated in @a pool.
+ * allocated in @a result_pool.
*
* If @a groups_stream is set, use the global groups parsed from it.
*
+ * If the @a warning_func callback is not @c NULL, it is called
+ * (with @a warning_baton) to report non-fatal warnings emitted by
+ * the parser.
+ *
+ * Uses @a scratch_pool for temporary aloocations.
+ *
+ * @since New in 1.12.
+ */
+svn_error_t *
+svn_repos_authz_parse2(svn_authz_t **authz_p,
+ svn_stream_t *stream,
+ svn_stream_t *groups_stream,
+ svn_repos_authz_warning_func_t warning_func,
+ void *warning_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Similar to svn_repos_authz_parse2(), but with @a warning_func and
+ * @a warning_baton set to @c NULL.
+ *
* @since New in 1.8.
+ * @deprecated Provided for backward compatibility with the 1.11 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_repos_authz_parse(svn_authz_t **authz_p,
svn_stream_t *stream,
Modified: subversion/branches/multi-wc-format/subversion/include/svn_types.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_types.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_types.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_types.h Fri Jan 14 14:01:45 2022
@@ -27,6 +27,8 @@
#ifndef SVN_TYPES_H
#define SVN_TYPES_H
+#include "svn_types_impl.h"
+
/* ### this should go away, but it causes too much breakage right now */
#include <stdlib.h>
#include <limits.h> /* for ULONG_MAX */
@@ -303,28 +305,7 @@ apr_hash_this_val(apr_hash_index_t *hi);
-/** The various types of nodes in the Subversion filesystem. */
-typedef enum svn_node_kind_t
-{
- /** absent */
- svn_node_none,
-
- /** regular file */
- svn_node_file,
-
- /** directory */
- svn_node_dir,
-
- /** something's here, but we don't know what */
- svn_node_unknown,
-
- /**
- * symbolic link
- * @note This value is not currently used by the public API.
- * @since New in 1.8.
- */
- svn_node_symlink
-} svn_node_kind_t;
+/* NOTE: svn_node_kind_t is defined in svn_types_impl.h */
/** Return a constant string expressing @a kind as an English word, e.g.,
* "file", "dir", etc. The string is not localized, as it may be used for
@@ -346,23 +327,7 @@ svn_node_kind_t
svn_node_kind_from_word(const char *word);
-/** Generic three-state property to represent an unknown value for values
- * that are just like booleans. The values have been set deliberately to
- * make tristates disjoint from #svn_boolean_t.
- *
- * @note It is unsafe to use apr_pcalloc() to allocate these, since '0' is
- * not a valid value.
- *
- * @since New in 1.7. */
-typedef enum svn_tristate_t
-{
- /** state known to be false (the constant does not evaulate to false) */
- svn_tristate_false = 2,
- /** state known to be true */
- svn_tristate_true,
- /** state could be true or false */
- svn_tristate_unknown
-} svn_tristate_t;
+/* NOTE: svn_tristate_t is defined in svn_types_impl.h */
/** Return a constant string "true", "false" or NULL representing the value of
* @a tristate.
@@ -422,15 +387,11 @@ svn_tristate__from_word(const char * wor
-/** A revision number. */
-typedef long int svn_revnum_t;
+/* NOTE: svn_revnum_t and SVN_INVALID_REVNUM are defined in svn_types_impl.h */
/** Valid revision numbers begin at 0 */
#define SVN_IS_VALID_REVNUM(n) ((n) >= 0)
-/** The 'official' invalid revision num */
-#define SVN_INVALID_REVNUM ((svn_revnum_t) -1)
-
/** Not really invalid...just unimportant -- one day, this can be its
* own unique value, for now, just make it the same as
* #SVN_INVALID_REVNUM.
@@ -494,55 +455,7 @@ enum svn_recurse_kind
svn_recursive
};
-/** The concept of depth for directories.
- *
- * @note This is similar to, but not exactly the same as, the WebDAV
- * and LDAP concepts of depth.
- *
- * @since New in 1.5.
- */
-typedef enum svn_depth_t
-{
- /* The order of these depths is important: the higher the number,
- the deeper it descends. This allows us to compare two depths
- numerically to decide which should govern. */
-
- /** Depth undetermined or ignored. In some contexts, this means the
- client should choose an appropriate default depth. The server
- will generally treat it as #svn_depth_infinity. */
- svn_depth_unknown = -2,
-
- /** Exclude (i.e., don't descend into) directory D.
- @note In Subversion 1.5, svn_depth_exclude is *not* supported
- anywhere in the client-side (libsvn_wc/libsvn_client/etc) code;
- it is only supported as an argument to set_path functions in the
- ra and repos reporters. (This will enable future versions of
- Subversion to run updates, etc, against 1.5 servers with proper
- svn_depth_exclude behavior, once we get a chance to implement
- client-side support for svn_depth_exclude.)
- */
- svn_depth_exclude = -1,
-
- /** Just the named directory D, no entries. Updates will not pull in
- any files or subdirectories not already present. */
- svn_depth_empty = 0,
-
- /** D + its file children, but not subdirs. Updates will pull in any
- files not already present, but not subdirectories. */
- svn_depth_files = 1,
-
- /** D + immediate children (D and its entries). Updates will pull in
- any files or subdirectories not already present; those
- subdirectories' this_dir entries will have depth-empty. */
- svn_depth_immediates = 2,
-
- /** D + all descendants (full recursion from D). Updates will pull
- in any files or subdirectories not already present; those
- subdirectories' this_dir entries will have depth-infinity.
- Equivalent to the pre-1.5 default update behavior. */
- svn_depth_infinity = 3
-
-} svn_depth_t;
+/* NOTE: svn_depth_t is defined in svn_types_impl.h */
/** Return a constant string expressing @a depth as an English word,
* e.g., "infinity", "immediates", etc. The string is not localized,
@@ -643,7 +556,7 @@ svn_depth_from_word(const char *word);
/** A general subversion directory entry.
*
* @note To allow for extending the #svn_dirent_t structure in future
- * releases, always use svn_dirent_create() to allocate the stucture.
+ * releases, always use svn_dirent_create() to allocate the structure.
*
* @since New in 1.6.
*/
Modified: subversion/branches/multi-wc-format/subversion/include/svn_version.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_version.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_version.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_version.h Fri Jan 14 14:01:45 2022
@@ -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 12
+#define SVN_VER_MINOR 15
/**
* Patch number.
@@ -346,7 +346,7 @@ svn_version_ext_build_time(const svn_ver
* @return The canonical host triplet (arch-vendor-osname) of the
* system where libsvn_subr was compiled.
*
- * @note On Unix-like systems (includng Mac OS X), this string is the
+ * @note On Unix-like systems (including Mac OS X), this string is the
* same as the output of the config.guess script.
*
* @since New in 1.8.
Modified: subversion/branches/multi-wc-format/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_wc.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_wc.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_wc.h Fri Jan 14 14:01:45 2022
@@ -1303,7 +1303,11 @@ typedef enum svn_wc_notify_action_t
/** Done searching the repository for details about a conflict.
* @since New in 1.10. */
- svn_wc_notify_end_search_tree_conflict_details
+ svn_wc_notify_end_search_tree_conflict_details,
+
+ /** A warning, specified in #svn_wc_notify_t.err.
+ * @since New in 1.15. */
+ svn_wc_notify_warning,
} svn_wc_notify_action_t;
@@ -2220,7 +2224,7 @@ typedef struct svn_wc_conflict_result_t
svn_boolean_t save_merged;
/** If not NULL, this is the new merged property, used when choosing
- * #svn_wc_conflict_choose_merged. This value is prefered over using
+ * #svn_wc_conflict_choose_merged. This value is preferred over using
* merged_file.
*
* @since New in 1.9.
@@ -3291,19 +3295,19 @@ typedef struct svn_wc_info_t
/**
* The format of the working copy.
- * @since New in 1.12.
+ * @since New in 1.15.
*/
int wc_format;
/**
* The oldest supporter working copy format.
- * @since New in 1.12.
+ * @since New in 1.15.
*/
int wc_format_min;
/**
* The newest supporter working copy format.
- * @since New in 1.12.
+ * @since New in 1.15.
*/
int wc_format_max;
} svn_wc_info_t;
@@ -3566,7 +3570,7 @@ svn_wc_mark_missing_deleted(const char *
* Use @a scratch_pool for temporary allocations.
*
* @since New in 1.7.
- * @deprecated Provided for backwards compatibility with the 1.11 API.
+ * @deprecated Provided for backwards compatibility with the 1.14 API.
*/
SVN_DEPRECATED
svn_error_t *
@@ -5252,7 +5256,7 @@ svn_wc_committed_queue_create(apr_pool_t
* turns the node and its implied descendants as the new unmodified state at
* the new specified revision. Unless @a recurse is TRUE, changes on
* descendants are not committed as changes directly. In this case they should
- * be queueud as their own changes.
+ * be queued as their own changes.
*
* If @a remove_lock is @c TRUE, any entryprops related to a repository
* lock will be removed.
@@ -7470,7 +7474,7 @@ typedef svn_error_t * (*svn_wc_upgrade_g
* with @a repos_info_baton to provide the missing information.
*
* @since New in 1.7
- * @deprecated Provided for backward compatibility with the 1.11 API.
+ * @deprecated Provided for backward compatibility with the 1.14 API.
*/
SVN_DEPRECATED
svn_error_t *
Modified: subversion/branches/multi-wc-format/subversion/include/svn_x509.h
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/include/svn_x509.h?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/include/svn_x509.h (original)
+++ subversion/branches/multi-wc-format/subversion/include/svn_x509.h Fri Jan 14 14:01:45 2022
@@ -54,7 +54,7 @@ extern "C" {
typedef struct svn_x509_certinfo_t svn_x509_certinfo_t;
/**
- * Representation of an atttribute in an X.509 name (e.g. Subject or Issuer)
+ * Representation of an attribute in an X.509 name (e.g. Subject or Issuer)
*
* @since New in 1.9.
*/
Modified: subversion/branches/multi-wc-format/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c (original)
+++ subversion/branches/multi-wc-format/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c Fri Jan 14 14:01:45 2022
@@ -120,10 +120,10 @@ password_get_gnome_keyring(svn_boolean_t
gchar *gpassword;
*done = FALSE;
-
+
if (!available_collection(non_interactive, pool))
return SVN_NO_ERROR;
-
+
gpassword = secret_password_lookup_sync(SECRET_SCHEMA_COMPAT_NETWORK, NULL,
&gerror,
"domain", realmstring,
@@ -140,7 +140,7 @@ password_get_gnome_keyring(svn_boolean_t
g_free(gpassword);
*done = TRUE;
}
-
+
return SVN_NO_ERROR;
}
@@ -158,7 +158,7 @@ password_set_gnome_keyring(svn_boolean_t
{
GError *gerror = NULL;
gboolean gstatus;
-
+
*done = FALSE;
if (!available_collection(non_interactive, pool))
@@ -182,7 +182,7 @@ password_set_gnome_keyring(svn_boolean_t
{
*done = TRUE;
}
-
+
return SVN_NO_ERROR;
}
Modified: subversion/branches/multi-wc-format/subversion/libsvn_auth_kwallet/kwallet.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/libsvn_auth_kwallet/kwallet.cpp?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/libsvn_auth_kwallet/kwallet.cpp (original)
+++ subversion/branches/multi-wc-format/subversion/libsvn_auth_kwallet/kwallet.cpp Fri Jan 14 14:01:45 2022
@@ -227,10 +227,10 @@ kwallet_password_get(svn_boolean_t *done
KLocalizedString::setApplicationDomain("subversion"); /* translation domain */
/* componentName appears in KDE GUI prompts */
- KAboutData aboutData(QStringLiteral("subversion"), /* componentName */
+ KAboutData aboutData(QString("subversion"), /* componentName */
i18n(get_application_name(parameters,
pool)), /* displayName */
- QStringLiteral(SVN_VER_NUMBER));
+ QString(SVN_VER_NUMBER));
KAboutData::setApplicationData(aboutData);
#else
KCmdLineArgs::init(q_argc, q_argv,
@@ -309,10 +309,10 @@ kwallet_password_set(svn_boolean_t *done
KLocalizedString::setApplicationDomain("subversion"); /* translation domain */
/* componentName appears in KDE GUI prompts */
- KAboutData aboutData(QStringLiteral("subversion"), /* componentName */
+ KAboutData aboutData(QString("subversion"), /* componentName */
i18n(get_application_name(parameters,
pool)), /* displayName */
- QStringLiteral(SVN_VER_NUMBER));
+ QString(SVN_VER_NUMBER));
KAboutData::setApplicationData(aboutData);
#else
KCmdLineArgs::init(q_argc, q_argv,
Modified: subversion/branches/multi-wc-format/subversion/libsvn_client/add.c
URL: http://svn.apache.org/viewvc/subversion/branches/multi-wc-format/subversion/libsvn_client/add.c?rev=1897034&r1=1897033&r2=1897034&view=diff
==============================================================================
--- subversion/branches/multi-wc-format/subversion/libsvn_client/add.c (original)
+++ subversion/branches/multi-wc-format/subversion/libsvn_client/add.c Fri Jan 14 14:01:45 2022
@@ -647,7 +647,7 @@ svn_client__get_all_auto_props(apr_hash_
/* Are "traditional" auto-props enabled? If so grab them from the
- config. This is our starting set auto-props, which may be overriden
+ config. This is our starting set auto-props, which may be overridden
by svn:auto-props. */
SVN_ERR(svn_config_get_bool(cfg, &use_autoprops,
SVN_CONFIG_SECTION_MISCELLANY,
@@ -983,12 +983,13 @@ svn_client_add5(const char *path,
static svn_error_t *
path_driver_cb_func(void **dir_baton,
+ const svn_delta_editor_t *editor,
+ void *edit_baton,
void *parent_baton,
void *callback_baton,
const char *path,
apr_pool_t *pool)
{
- const svn_delta_editor_t *editor = callback_baton;
SVN_ERR(svn_path_check_valid(path, pool));
return editor->add_directory(path, parent_baton, NULL,
SVN_INVALID_REVNUM, pool, dir_baton);
@@ -1177,8 +1178,8 @@ mkdir_urls(const apr_array_header_t *url
/* Call the path-based editor driver. */
err = svn_error_trace(
- svn_delta_path_driver2(editor, edit_baton, targets, TRUE,
- path_driver_cb_func, (void *)editor, pool));
+ svn_delta_path_driver3(editor, edit_baton, targets, TRUE,
+ path_driver_cb_func, NULL, pool));
if (err)
{