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