You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ko...@apache.org on 2022/12/01 10:42:41 UTC

svn commit: r1905663 - in /subversion/branches/pristines-on-demand-on-mwf/subversion: include/ include/private/ libsvn_client/ libsvn_wc/

Author: kotkov
Date: Thu Dec  1 10:42:41 2022
New Revision: 1905663

URL: http://svn.apache.org/viewvc?rev=1905663&view=rev
Log:
On the 'pristines-on-demand-on-mwf' branch: Bump libsvn_wc APIs that may
need to access pristine contents and adjust their deprecated versions so
that they would return an error for working copies without pristines.

Additionally, change the existing deprecated function that may need to
access pristines so that they would also return an error in such cases.

With this change, the deprecated functions will fail predictably — instead
of only failing on attempts to read a pristine that was not fetched during
any of the previous API calls.

* subversion/include/svn_error_codes.h
  (SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE): New error code.

* subversion/include/svn_wc.h
  (svn_wc_crawl_revisions6): New, revved from …
  (svn_wc_crawl_revisions5): …this function, which is now deprecated.
  (svn_wc_diff7): New, revved from …
  (svn_wc_diff6): …this function, which is now deprecated.
  (svn_wc_merge6): New, revved from …
  (svn_wc_merge5): …this function, which is now deprecated.
  (svn_wc_get_pristine_contents3): New, revved from …
  (svn_wc_get_pristine_contents2): …this function, which is now deprecated.
  (svn_wc_revert7): New, revved from …
  (svn_wc_revert6): …this function, which is now deprecated.
  (svn_wc_restore2): New, revved from …
  (svn_wc_restore): …this function, which is now deprecated.
  (svn_wc_transmit_text_deltas4): New, revved from …
  (svn_wc_transmit_text_deltas3): …this function, which is now deprecated.

* subversion/libsvn_wc/deprecated.c
  (svn_wc_crawl_revisions5,
   svn_wc_diff6,
   svn_wc_merge5,
   svn_wc_get_pristine_contents2,
   svn_wc_revert6,
   svn_wc_restore,
   svn_wc_transmit_text_deltas3): Now reside in this file.
   Check working copy settings and forward call to the newer version.

* subversion/libsvn_wc/adm_crawler.c
  (svn_wc_restore): Replace with …
  (svn_wc_restore2): …this new function.
  (svn_wc_crawl_revisions5): Replace with …
  (svn_wc_crawl_revisions6): …this new function.
  (svn_wc_transmit_text_deltas3): Replace with …
  (svn_wc_transmit_text_deltas4): …this new function.
  (report_revisions_and_depths): Update comment.

* subversion/libsvn_wc/adm_ops.c
  (svn_wc_get_pristine_copy_path): Make this existing deprecated function
   return an error for working copies without pristines.
  (svn_wc_get_pristine_contents2): Replace with …
  (svn_wc_get_pristine_contents3): …this new function.

* subversion/libsvn_wc/conflicts.c
  (svn_wc_resolved_conflict5): Make this existing deprecated function
   return an error for working copies without pristines.

* subversion/libsvn_wc/diff_local.c
  (svn_wc_diff6): Replace with …
  (svn_wc_diff7): …this new function.

* subversion/libsvn_wc/externals.c
  (svn_wc__crawl_file_external): Switch to a newer version of the API.

* subversion/libsvn_wc/merge.c
  (svn_wc_merge5): Replace with …
  (svn_wc_merge6): …this new function.
 
* subversion/libsvn_wc/revert.c
  (svn_wc_revert6): Replace with …
  (svn_wc_revert7): …this new function.

* subversion/libsvn_wc/wc.h
  (svn_wc__internal_merge,
   svn_wc__internal_transmit_text_deltas): Update docstrings.

* subversion/include/private/svn_wc_private.h
  (svn_wc__get_pristine_contents_by_checksum,
   svn_wc__get_diff_editor,
   svn_wc__diff7): Update docstrings.

* subversion/libsvn_client/cat.c
  (svn_client__get_normalized_stream): Switch to a newer version of the API.

* subversion/libsvn_client/commit_util.c
  (svn_client__do_commit): Switch to a newer version of the API.

* subversion/libsvn_client/conflicts.c
  (resolve_merge_incoming_added_file_text_update,
   resolve_merge_incoming_added_file_text_merge,
   resolve_merge_incoming_added_file_replace_and_merge,
   merge_added_files,
   resolve_update_incoming_added_dir_merge,
   resolve_incoming_move_file_text_merge,
   resolve_both_moved_file_text_merge,
   resolve_both_moved_dir_merge,
   resolve_both_moved_dir_move_merge,
   resolve_incoming_move_dir_merge,
   resolve_local_move_file_merge,
   resolve_both_moved_file_update_keep_local_move,
   resolve_both_moved_file_update_keep_incoming_move):
   Switch to newer versions of the API.

* subversion/libsvn_client/diff.c
  (diff_repos_wc): Switch to a newer version of the API.

* subversion/libsvn_client/export.c
  (export_node): Switch to a newer version of the API.

* subversion/libsvn_client/layout.c
  (svn_client__layout_list): Switch to a newer version of the API.

* subversion/libsvn_client/merge.c
  (merge_file_changed): Switch to a newer version of the API.

* subversion/libsvn_client/ra.c
  (svn_client__ra_provide_base): Switch to a newer version of the API.

* subversion/libsvn_client/revert.c
  (revert): Switch to a newer version of the API.

* subversion/libsvn_client/status.c
  (svn_client_status6): Switch to a newer version of the API.

* subversion/libsvn_client/switch.c
  (switch_internal): Switch to a newer version of the API.

* subversion/libsvn_client/update.c
  (update_internal): Switch to a newer version of the API.

* subversion/libsvn_client/util.c
  (fetch_base_func): Switch to a newer version of the API.

* subversion/libsvn_client/shelf.c,
  subversion/libsvn_client/shelf2.c:
  (): Define SVN_DEPRECATED to allow using deprecated functions in these
   experimental modules.  Keep using the old versions of the APIs to have
   proper errors.

Modified:
    subversion/branches/pristines-on-demand-on-mwf/subversion/include/private/svn_wc_private.h
    subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h
    subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_wc.h
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/cat.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/commit_util.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/conflicts.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/diff.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/export.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/layout.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/merge.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/ra.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/revert.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/shelf.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/shelf2.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/status.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/switch.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/update.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/util.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/adm_crawler.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/adm_ops.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/conflicts.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/deprecated.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/diff_local.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/externals.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/merge.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/revert.c
    subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/wc.h

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/include/private/svn_wc_private.h?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/include/private/svn_wc_private.h Thu Dec  1 10:42:41 2022
@@ -1040,7 +1040,7 @@ svn_wc__node_get_md5_from_sha1(const svn
                                apr_pool_t *result_pool,
                                apr_pool_t *scratch_pool);
 
-/* Like svn_wc_get_pristine_contents2(), but keyed on the CHECKSUM
+/* Like svn_wc_get_pristine_contents3(), but keyed on the CHECKSUM
    rather than on the local absolute path of the working file.
    WRI_ABSPATH is any versioned path of the working copy in whose
    pristine database we'll be looking for these contents.  */
@@ -1657,7 +1657,7 @@ svn_wc__get_switch_editor(const svn_delt
  *      |    |          |       |          |       |          |       out
  *      |    +----------+       +----------+       +----------+
  *      |
- *   3. svn_wc_crawl_revisions5(WC,reporter)
+ *   3. svn_wc_crawl_revisions6(WC,reporter)
  *
  *
  * @since New in 1.8.
@@ -2081,18 +2081,18 @@ svn_wc__acquire_write_lock_for_resolve(c
                                        apr_pool_t *result_pool,
                                        apr_pool_t *scratch_pool);
 
-/* The implementation of svn_wc_diff6(), but reporting to a diff processor
+/* The implementation of svn_wc_diff7(), but reporting to a diff processor
  *
  * New mode, when ANCHOR_AT_GIVEN_PATHS is true:
  *
  *   Anchor the DIFF_PROCESSOR at LOCAL_ABSPATH.
  *
- * Backward compatibility mode for svn_wc_diff6(),
+ * Backward compatibility mode for svn_wc_diff7(),
  * when ANCHOR_AT_GIVEN_PATHS is false:
  *
  *   Send diff processor relpaths relative to LOCAL_ABSPATH if it is a
  *   directory; otherwise, relative to the parent of LOCAL_ABSPATH.
- *   This matches the "anchor and target" semantics of svn_wc_diff6().
+ *   This matches the "anchor and target" semantics of svn_wc_diff7().
  */
 svn_error_t *
 svn_wc__diff7(svn_boolean_t anchor_at_given_paths,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h Thu Dec  1 10:42:41 2022
@@ -581,6 +581,12 @@ SVN_ERROR_START
              SVN_ERR_WC_CATEGORY_START + 42,
              "Incompatible working copy settings")
 
+  /** @since New in 1.15 */
+  SVN_ERRDEF(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE,
+             SVN_ERR_WC_CATEGORY_START + 43,
+             "This client was not updated to support working copies "
+             "without local pristines")
+
   /* fs errors */
 
   SVN_ERRDEF(SVN_ERR_FS_GENERAL,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_wc.h?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_wc.h (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_wc.h Thu Dec  1 10:42:41 2022
@@ -5551,8 +5551,43 @@ svn_wc_process_committed(const char *pat
  * use_commit_times is TRUE, then set restored files' timestamps to
  * their last-commit-times.
  *
+ * @note This is a relatively low-level function operating directly on a
+ * working copy, so a caller is expected to be able to handle working copies
+ * that do not store local copies of all pristine contents.  This can be
+ * achieved by synchronizing the text-base state before and optionally
+ * after the function call.  @see svn_wc_textbase_sync().
+ *
+ * Currently, the pristine contents may be required when @a restore_files
+ * is TRUE.
+ *
+ * @since New in 1.15.
+ */
+svn_error_t *
+svn_wc_crawl_revisions6(svn_wc_context_t *wc_ctx,
+                        const char *local_abspath,
+                        const svn_ra_reporter3_t *reporter,
+                        void *report_baton,
+                        svn_boolean_t restore_files,
+                        svn_depth_t depth,
+                        svn_boolean_t honor_depth_exclude,
+                        svn_boolean_t depth_compatibility_trick,
+                        svn_boolean_t use_commit_times,
+                        svn_cancel_func_t cancel_func,
+                        void *cancel_baton,
+                        svn_wc_notify_func2_t notify_func,
+                        void *notify_baton,
+                        apr_pool_t *scratch_pool);
+
+/**
+ * Similar to svn_wc_crawl_revisions6, but this function can only be used
+ * for working copies that store local copies of all pristine contents.
+ * Otherwise, an #SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE error will be
+ * returned.
+ *
  * @since New in 1.7.
+ * @deprecated Provided for compatibility with the 1.7 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_crawl_revisions5(svn_wc_context_t *wc_ctx,
                         const char *local_abspath,
@@ -6780,8 +6815,41 @@ svn_wc_get_diff_editor(svn_wc_adm_access
  * points during the operation.  If it returns an error (typically
  * #SVN_ERR_CANCELLED), return that error immediately.
  *
+ * @note For general purposes, please consider using APIs from svn_client.h,
+ * @see svn_client_diff7().
+ *
+ * @note This is a relatively low-level function operating directly on a
+ * working copy, so a caller is expected to be able to handle working copies
+ * that do not store local copies of all pristine contents.  This can be
+ * achieved by synchronizing the text-base state before and optionally
+ * after the function call.  @see svn_wc_textbase_sync().
+ *
+ * @since New in 1.15.
+ */
+svn_error_t *
+svn_wc_diff7(svn_wc_context_t *wc_ctx,
+             const char *target_abspath,
+             const svn_wc_diff_callbacks4_t *callbacks,
+             void *callback_baton,
+             svn_depth_t depth,
+             svn_boolean_t ignore_ancestry,
+             svn_boolean_t show_copies_as_adds,
+             svn_boolean_t use_git_diff_format,
+             const apr_array_header_t *changelist_filter,
+             svn_cancel_func_t cancel_func,
+             void *cancel_baton,
+             apr_pool_t *scratch_pool);
+
+/**
+ * Similar to svn_wc_diff7(), but this function can only be used for
+ * working copies that store local copies of all pristine contents.
+ * Otherwise, an #SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE error will be
+ * returned.
+ *
  * @since New in 1.7.
+ * @deprecated Provided for backward compatibility with the 1.7 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_diff6(svn_wc_context_t *wc_ctx,
              const char *target_abspath,
@@ -7043,8 +7111,46 @@ typedef enum svn_wc_merge_outcome_t
  *
  * Use @a scratch_pool for any temporary allocation.
  *
+ * @note This is a relatively low-level function operating directly on a
+ * working copy, so a caller is expected to be able to handle working copies
+ * that do not store local copies of all pristine contents.  This can be
+ * achieved by synchronizing the text-base state before and optionally
+ * after the function call.  @see svn_wc_textbase_sync().
+ *
+ * @since New in 1.15.
+ */
+svn_error_t *
+svn_wc_merge6(enum svn_wc_merge_outcome_t *merge_content_outcome,
+              enum svn_wc_notify_state_t *merge_props_state,
+              svn_wc_context_t *wc_ctx,
+              const char *left_abspath,
+              const char *right_abspath,
+              const char *target_abspath,
+              const char *left_label,
+              const char *right_label,
+              const char *target_label,
+              const svn_wc_conflict_version_t *left_version,
+              const svn_wc_conflict_version_t *right_version,
+              svn_boolean_t dry_run,
+              const char *diff3_cmd,
+              const apr_array_header_t *merge_options,
+              apr_hash_t *original_props,
+              const apr_array_header_t *prop_diff,
+              svn_wc_conflict_resolver_func2_t conflict_func,
+              void *conflict_baton,
+              svn_cancel_func_t cancel_func,
+              void *cancel_baton,
+              apr_pool_t *scratch_pool);
+
+/** Similar to svn_wc_merge6(), but this function can only be used
+ * for working copies that store local copies of all pristine contents.
+ * Otherwise, an #SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE error will be
+ * returned.
+ *
  * @since New in 1.8.
+ * @deprecated Provided for backwards compatibility with the 1.8 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_merge5(enum svn_wc_merge_outcome_t *merge_content_outcome,
               enum svn_wc_notify_state_t *merge_props_state,
@@ -7314,7 +7420,30 @@ svn_wc_merge_prop_diffs(svn_wc_notify_st
  * @c SVN_ERR_WC_PATH_NOT_FOUND. Use @a wc_ctx to access the working copy.
  * @a contents may not be @c NULL (unlike @a *contents).
  *
- * @since New in 1.7. */
+ * @note This is a relatively low-level function operating directly on a
+ * working copy, so a caller is expected to be able to handle working copies
+ * that do not store local copies of all pristine contents.  This can be
+ * achieved by synchronizing the text-base state before and optionally
+ * after the function call.  @see svn_wc_textbase_sync().
+ *
+ * @since New in 1.15.
+ */
+svn_error_t *
+svn_wc_get_pristine_contents3(svn_stream_t **contents,
+                              svn_wc_context_t *wc_ctx,
+                              const char *local_abspath,
+                              apr_pool_t *result_pool,
+                              apr_pool_t *scratch_pool);
+
+/** Similar to svn_wc_get_pristine_contents3, but this function can only be used
+ * for working copies that store local copies of all pristine contents.
+ * Otherwise, an #SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE error will be
+ * returned.
+ *
+ * @since New in 1.7.
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_get_pristine_contents2(svn_stream_t **contents,
                               svn_wc_context_t *wc_ctx,
@@ -7713,8 +7842,41 @@ svn_wc_relocate(const char *path,
  * If @a path is not under version control, return the error
  * #SVN_ERR_UNVERSIONED_RESOURCE.
  *
+ * @note For general purposes, please consider using APIs from svn_client.h,
+ * @see svn_client_revert4().
+ *
+ * @note This is a relatively low-level function operating directly on a
+ * working copy, so a caller is expected to be able to handle working copies
+ * that do not store local copies of all pristine contents.  This can be
+ * achieved by synchronizing the text-base state before and optionally
+ * after the function call.  @see svn_wc_textbase_sync().
+ *
+ * @since New in 1.15.
+ */
+svn_error_t *
+svn_wc_revert7(svn_wc_context_t *wc_ctx,
+               const char *local_abspath,
+               svn_depth_t depth,
+               svn_boolean_t use_commit_times,
+               const apr_array_header_t *changelist_filter,
+               svn_boolean_t clear_changelists,
+               svn_boolean_t metadata_only,
+               svn_boolean_t added_keep_local,
+               svn_cancel_func_t cancel_func,
+               void *cancel_baton,
+               svn_wc_notify_func2_t notify_func,
+               void *notify_baton,
+               apr_pool_t *scratch_pool);
+
+/** Similar to svn_wc_revert7(), but this function can only be used
+ * for working copies that store local copies of all pristine contents.
+ * Otherwise, an #SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE error will be
+ * returned.
+ *
  * @since New in 1.11.
+ * @deprecated Provided for backward compatibility with the 1.11 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_revert6(svn_wc_context_t *wc_ctx,
                const char *local_abspath,
@@ -7840,8 +8002,30 @@ svn_wc_revert(const char *path,
  * SVN_ERROR_WC_PATH_UNEXPECTED_STATUS if LOCAL_ABSPATH is in a status where
  * it can't be restored.
  *
+ * @note This is a relatively low-level function operating directly on a
+ * working copy, so a caller is expected to be able to handle working copies
+ * that do not store local copies of all pristine contents.  This can be
+ * achieved by synchronizing the text-base state before and optionally
+ * after the function call.  @see svn_wc_textbase_sync().
+ *
+ * @since New in 1.15.
+ */
+svn_error_t *
+svn_wc_restore2(svn_wc_context_t *wc_ctx,
+                const char *local_abspath,
+                svn_boolean_t use_commit_times,
+                apr_pool_t *scratch_pool);
+
+/**
+ * Similar to svn_wc_restore2(), but this function can only be used
+ * for working copies that store local copies of all pristine contents.
+ * Otherwise, an #SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE error will be
+ * returned.
+ *
  * @since New in 1.7.
+ * @deprecated Provided for backward compatibility with the 1.7 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_restore(svn_wc_context_t *wc_ctx,
                const char *local_abspath,
@@ -8010,8 +8194,37 @@ svn_wc_translated_stream(svn_stream_t **
  * @note This is intended for use with both infix and postfix
  * text-delta styled editor drivers.
  *
+ * @note For general purposes, please consider using APIs from svn_client.h,
+ * @see svn_client_commit6().
+ *
+ * @note This is a relatively low-level function operating directly on a
+ * working copy, so a caller is expected to be able to handle working copies
+ * that do not store local copies of all pristine contents.  This can be
+ * achieved by synchronizing the text-base state before and optionally
+ * after the function call.  @see svn_wc_textbase_sync().
+ *
+ * @since New in 1.15.
+ */
+svn_error_t *
+svn_wc_transmit_text_deltas4(const svn_checksum_t **new_text_base_md5_checksum,
+                             const svn_checksum_t **new_text_base_sha1_checksum,
+                             svn_wc_context_t *wc_ctx,
+                             const char *local_abspath,
+                             svn_boolean_t fulltext,
+                             const svn_delta_editor_t *editor,
+                             void *file_baton,
+                             apr_pool_t *result_pool,
+                             apr_pool_t *scratch_pool);
+
+/** Similar to svn_wc_transmit_text_deltas4(), but this function can only be
+ * used for working copies that store local copies of all pristine contents.
+ * Otherwise, an #SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE error will be
+ * returned.
+ *
  * @since New in 1.7.
+ * @deprecated Provided for backwards compatibility with the 1.7 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_transmit_text_deltas3(const svn_checksum_t **new_text_base_md5_checksum,
                              const svn_checksum_t **new_text_base_sha1_checksum,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/cat.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/cat.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/cat.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/cat.c Thu Dec  1 10:42:41 2022
@@ -85,7 +85,7 @@ svn_client__get_normalized_stream(svn_st
 
   if (revision->kind != svn_opt_revision_working)
     {
-      SVN_ERR(svn_wc_get_pristine_contents2(&input, wc_ctx, local_abspath,
+      SVN_ERR(svn_wc_get_pristine_contents3(&input, wc_ctx, local_abspath,
                                             result_pool, scratch_pool));
       if (input == NULL)
         return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/commit_util.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/commit_util.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/commit_util.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/commit_util.c Thu Dec  1 10:42:41 2022
@@ -1937,7 +1937,7 @@ svn_client__do_commit(const char *base_u
           && ! (item->state_flags & SVN_CLIENT_COMMIT_ITEM_IS_COPY))
         fulltext = TRUE;
 
-      err = svn_wc_transmit_text_deltas3(&new_text_base_md5_checksum,
+      err = svn_wc_transmit_text_deltas4(&new_text_base_md5_checksum,
                                          &new_text_base_sha1_checksum,
                                          ctx->wc_ctx, item->path,
                                          fulltext, editor, mod->file_baton,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/conflicts.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/conflicts.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/conflicts.c Thu Dec  1 10:42:41 2022
@@ -6992,7 +6992,7 @@ resolve_merge_incoming_added_file_text_u
   /* Revert the path in order to restore the repository's line of
    * history, which is part of the BASE tree. This revert operation
    * is why are being careful about not losing the temporary copy. */
-  err = svn_wc_revert6(ctx->wc_ctx, local_abspath, svn_depth_empty,
+  err = svn_wc_revert7(ctx->wc_ctx, local_abspath, svn_depth_empty,
                        FALSE, NULL, TRUE, FALSE,
                        TRUE /*added_keep_local*/,
                        NULL, NULL, /* no cancellation */
@@ -7002,7 +7002,7 @@ resolve_merge_incoming_added_file_text_u
     goto unlock_wc;
 
   /* Perform the file merge. ### Merge into tempfile and then rename on top? */
-  err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+  err = svn_wc_merge6(&merge_content_outcome, &merge_props_outcome,
                       ctx->wc_ctx, empty_file_abspath,
                       working_file_tmp_abspath, local_abspath,
                       NULL, NULL, NULL, /* labels */
@@ -7130,12 +7130,12 @@ resolve_merge_incoming_added_file_text_m
   /* ### The following WC modifications should be atomic. */
   SVN_ERR(begin_resolve(&lock_abspath, local_abspath, ctx,
                         scratch_pool, scratch_pool));
-  /* Resolve to current working copy state. svn_wc_merge5() requires this. */
+  /* Resolve to current working copy state. svn_wc_merge6() requires this. */
   err = svn_wc__del_tree_conflict(ctx->wc_ctx, local_abspath, scratch_pool);
   if (err)
     return finish_resolve(lock_abspath, ctx, err, scratch_pool);
   /* Perform the file merge. ### Merge into tempfile and then rename on top? */
-  err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+  err = svn_wc_merge6(&merge_content_outcome, &merge_props_outcome,
                       ctx->wc_ctx, empty_file_abspath,
                       incoming_new_tmp_abspath, local_abspath,
                       NULL, NULL, NULL, /* labels */
@@ -7294,7 +7294,7 @@ resolve_merge_incoming_added_file_replac
       ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
     }
 
-  /* Resolve to current working copy state. svn_wc_merge5() requires this. */
+  /* Resolve to current working copy state. svn_wc_merge6() requires this. */
   err = svn_wc__del_tree_conflict(ctx->wc_ctx, local_abspath, scratch_pool);
   if (err)
     goto unlock_wc;
@@ -7316,7 +7316,7 @@ resolve_merge_incoming_added_file_replac
     goto unlock_wc;
 
   /* Perform the file merge. */
-  err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+  err = svn_wc_merge6(&merge_content_outcome, &merge_props_outcome,
                       ctx->wc_ctx, empty_file_abspath,
                       working_file_tmp_abspath, local_abspath,
                       NULL, NULL, NULL, /* labels */
@@ -7633,7 +7633,7 @@ merge_added_files(const char *local_absp
                          working_props, scratch_pool));
 
   /* Perform the file merge. */
-  SVN_ERR(svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+  SVN_ERR(svn_wc_merge6(&merge_content_outcome, &merge_props_outcome,
                         ctx->wc_ctx, empty_file_abspath,
                         incoming_added_file_abspath, local_abspath,
                         NULL, NULL, NULL, /* labels */
@@ -7977,7 +7977,7 @@ resolve_update_incoming_added_dir_merge(
        * files with files from the repository is impossible because there is
        * no known merge base. No unversioned data will be lost, and any
        * differences to files in the repository will show up in 'svn diff'. */
-      err = svn_wc_revert6(ctx->wc_ctx, local_abspath, svn_depth_infinity,
+      err = svn_wc_revert7(ctx->wc_ctx, local_abspath, svn_depth_infinity,
                            FALSE, NULL, TRUE, TRUE /* metadata_only */,
                            TRUE /*added_keep_local*/,
                            NULL, NULL, /* no cancellation */
@@ -8730,7 +8730,7 @@ resolve_incoming_move_file_text_merge(sv
     SVN_ERR_MALFUNCTION();
 
   /* Perform the file merge. */
-  err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+  err = svn_wc_merge6(&merge_content_outcome, &merge_props_outcome,
                       ctx->wc_ctx, ancestor_abspath,
                       incoming_abspath, moved_to_abspath,
                       NULL, NULL, NULL, /* labels */
@@ -8949,7 +8949,7 @@ resolve_both_moved_file_text_merge(svn_c
     goto unlock_wc;
 
   /* Perform the file merge. */
-  err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+  err = svn_wc_merge6(&merge_content_outcome, &merge_props_outcome,
                       ctx->wc_ctx, ancestor_abspath,
                       incoming_moved_to_abspath, local_moved_to_abspath,
                       NULL, NULL, NULL, /* labels */
@@ -8982,7 +8982,7 @@ resolve_both_moved_file_text_merge(svn_c
     }
 
   /* Revert local addition of the incoming move's target. */
-  err = svn_wc_revert6(ctx->wc_ctx, incoming_moved_to_abspath,
+  err = svn_wc_revert7(ctx->wc_ctx, incoming_moved_to_abspath,
                        svn_depth_infinity, FALSE, NULL, TRUE, FALSE,
                        FALSE /*added_keep_local*/,
                        NULL, NULL, /* no cancellation */
@@ -9126,7 +9126,7 @@ resolve_both_moved_dir_merge(svn_client_
     goto unlock_wc;
 
   /* Revert local addition of the incoming move's target. */
-  err = svn_wc_revert6(ctx->wc_ctx, incoming_moved_to_abspath,
+  err = svn_wc_revert7(ctx->wc_ctx, incoming_moved_to_abspath,
                        svn_depth_infinity, FALSE, NULL, TRUE, FALSE,
                        FALSE /*added_keep_local*/,
                        NULL, NULL, /* no cancellation */
@@ -9245,7 +9245,7 @@ resolve_both_moved_dir_move_merge(svn_cl
                         ctx, scratch_pool, scratch_pool));
 
   /* Revert the incoming move target directory. */
-  err = svn_wc_revert6(ctx->wc_ctx, incoming_moved_to_abspath,
+  err = svn_wc_revert7(ctx->wc_ctx, incoming_moved_to_abspath,
                        svn_depth_infinity,
                        FALSE, NULL, TRUE, FALSE,
                        TRUE /*added_keep_local*/,
@@ -9445,7 +9445,7 @@ resolve_incoming_move_dir_merge(svn_clie
       svn_opt_revision_t incoming_new_opt_rev;
 
       /* Revert the incoming move target directory. */
-      err = svn_wc_revert6(ctx->wc_ctx, moved_to_abspath, svn_depth_infinity,
+      err = svn_wc_revert7(ctx->wc_ctx, moved_to_abspath, svn_depth_infinity,
                            FALSE, NULL, TRUE, FALSE,
                            TRUE /*added_keep_local*/,
                            NULL, NULL, /* no cancellation */
@@ -9668,7 +9668,7 @@ resolve_local_move_file_merge(svn_client
                         ctx, scratch_pool, scratch_pool));
 
   /* Perform the file merge. */
-  err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+  err = svn_wc_merge6(&merge_content_outcome, &merge_props_outcome,
                       ctx->wc_ctx,
                       ancestor_tmp_abspath, incoming_tmp_abspath,
                       merge_target_abspath,
@@ -11216,7 +11216,7 @@ resolve_both_moved_file_update_keep_loca
     goto unlock_wc;
 
   /* Perform the file merge. */
-  err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+  err = svn_wc_merge6(&merge_content_outcome, &merge_props_outcome,
                       ctx->wc_ctx, ancestor_abspath,
                       incoming_moved_to_abspath, local_moved_to_abspath,
                       NULL, NULL, NULL, /* labels */
@@ -11423,7 +11423,7 @@ resolve_both_moved_file_update_keep_inco
     goto unlock_wc;
 
   /* Perform the file merge. */
-  err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
+  err = svn_wc_merge6(&merge_content_outcome, &merge_props_outcome,
                       ctx->wc_ctx, ancestor_abspath,
                       local_moved_to_abspath, incoming_moved_to_abspath,
                       NULL, NULL, NULL, /* labels */
@@ -11457,7 +11457,7 @@ resolve_both_moved_file_update_keep_inco
 
   /* Revert the copy-half of the local move. The delete-half of this move
    * has already been deleted during the update/switch operation. */
-  err = svn_wc_revert6(ctx->wc_ctx, local_moved_to_abspath, svn_depth_empty,
+  err = svn_wc_revert7(ctx->wc_ctx, local_moved_to_abspath, svn_depth_empty,
                        FALSE, NULL, TRUE, FALSE,
                        TRUE /*added_keep_local*/,
                        NULL, NULL, /* no cancellation */

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/diff.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/diff.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/diff.c Thu Dec  1 10:42:41 2022
@@ -2341,7 +2341,7 @@ diff_repos_wc(struct diff_driver_info_t
     {
       /* Create a txn mirror of path2;  the diff editor will print
          diffs in reverse.  :-)  */
-      SVN_ERR(svn_wc_crawl_revisions5(ctx->wc_ctx, abspath2,
+      SVN_ERR(svn_wc_crawl_revisions6(ctx->wc_ctx, abspath2,
                                       reporter, reporter_baton,
                                       FALSE, depth, TRUE,
                                       (! server_supports_depth),

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/export.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/export.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/export.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/export.c Thu Dec  1 10:42:41 2022
@@ -321,7 +321,7 @@ export_node(void *baton,
 
          We get all this for free from evaluating SOURCE == NULL:
        */
-      SVN_ERR(svn_wc_get_pristine_contents2(&source, wc_ctx, local_abspath,
+      SVN_ERR(svn_wc_get_pristine_contents3(&source, wc_ctx, local_abspath,
                                             scratch_pool, scratch_pool));
       if (source == NULL)
         return SVN_NO_ERROR;

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/layout.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/layout.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/layout.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/layout.c Thu Dec  1 10:42:41 2022
@@ -275,7 +275,7 @@ svn_client__layout_list(const char *loca
 
   /* Drive the reporter structure, describing the revisions within
      LOCAL_ABSPATH.  */
-  SVN_ERR(svn_wc_crawl_revisions5(ctx->wc_ctx, local_abspath,
+  SVN_ERR(svn_wc_crawl_revisions6(ctx->wc_ctx, local_abspath,
                                   &layout_reporter, &lb,
                                   FALSE /* restore_files */,
                                   svn_depth_infinity,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/merge.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/merge.c Thu Dec  1 10:42:41 2022
@@ -2126,7 +2126,7 @@ merge_file_changed(const char *relpath,
     }
 
   /* This callback is essentially no more than a wrapper around
-     svn_wc_merge5().  Thank goodness that all the
+     svn_wc_merge6().  Thank goodness that all the
      diff-editor-mechanisms are doing the hard work of getting the
      fulltexts! */
 
@@ -2204,7 +2204,7 @@ merge_file_changed(const char *relpath,
 
       /* Do property merge and text merge in one step so that keyword expansion
          takes into account the new property values. */
-      SVN_ERR(svn_wc_merge5(&content_outcome, &property_state, ctx->wc_ctx,
+      SVN_ERR(svn_wc_merge6(&content_outcome, &property_state, ctx->wc_ctx,
                             left_file, right_file, local_abspath,
                             left_label, right_label, target_label,
                             left, right,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/ra.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/ra.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/ra.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/ra.c Thu Dec  1 10:42:41 2022
@@ -1086,7 +1086,7 @@ svn_client__ra_provide_base(svn_stream_t
       return SVN_NO_ERROR;
     }
 
-  err = svn_wc_get_pristine_contents2(contents, reb->wc_ctx, local_abspath,
+  err = svn_wc_get_pristine_contents3(contents, reb->wc_ctx, local_abspath,
                                       result_pool, scratch_pool);
   if (err)
     {

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/revert.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/revert.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/revert.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/revert.c Thu Dec  1 10:42:41 2022
@@ -58,7 +58,7 @@ struct revert_with_write_lock_baton {
 
 /* (Note: All arguments are in the baton above.)
 
-   Attempt to revert LOCAL_ABSPATH by calling svn_wc_revert6(), which
+   Attempt to revert LOCAL_ABSPATH by calling svn_wc_revert7(), which
    see for further details.
 
    If the target isn't versioned, send a 'skip' notification and return
@@ -74,7 +74,7 @@ revert(void *baton, apr_pool_t *result_p
                                     TRUE, TRUE, b->ctx, *b->ra_session_p,
                                     result_pool, scratch_pool));
 
-  err = svn_wc_revert6(b->ctx->wc_ctx,
+  err = svn_wc_revert7(b->ctx->wc_ctx,
                        b->local_abspath,
                        b->depth,
                        b->use_commit_times,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/shelf.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/shelf.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/shelf.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/shelf.c Thu Dec  1 10:42:41 2022
@@ -26,6 +26,9 @@
 /* We define this here to remove any further warnings about the usage of
    experimental functions in this file. */
 #define SVN_EXPERIMENTAL
+/* We currently allow using deprecated functions in this experimental
+   context. */
+#define SVN_DEPRECATED
 
 #include "svn_client.h"
 #include "svn_wc.h"

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/shelf2.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/shelf2.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/shelf2.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/shelf2.c Thu Dec  1 10:42:41 2022
@@ -26,6 +26,9 @@
 /* We define this here to remove any further warnings about the usage of
    experimental functions in this file. */
 #define SVN_EXPERIMENTAL
+/* We currently allow using deprecated functions in this experimental
+   context. */
+#define SVN_DEPRECATED
 
 #include "svn_client.h"
 #include "svn_wc.h"

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/status.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/status.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/status.c Thu Dec  1 10:42:41 2022
@@ -637,7 +637,7 @@ svn_client_status6(svn_revnum_t *result_
              within PATH.  When we call reporter->finish_report,
              EDITOR will be driven to describe differences between our
              working copy and HEAD. */
-          SVN_ERR(svn_wc_crawl_revisions5(ctx->wc_ctx,
+          SVN_ERR(svn_wc_crawl_revisions6(ctx->wc_ctx,
                                           target_abspath,
                                           &lock_fetch_reporter, &rb,
                                           FALSE /* restore_files */,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/switch.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/switch.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/switch.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/switch.c Thu Dec  1 10:42:41 2022
@@ -343,7 +343,7 @@ switch_internal(svn_revnum_t *result_rev
   /* Drive the reporter structure, describing the revisions within
      LOCAL_ABSPATH.  When this calls reporter->finish_report, the
      reporter will drive the switch_editor. */
-  SVN_ERR(svn_wc_crawl_revisions5(ctx->wc_ctx, local_abspath, reporter,
+  SVN_ERR(svn_wc_crawl_revisions6(ctx->wc_ctx, local_abspath, reporter,
                                   report_baton, TRUE,
                                   depth, (! depth_is_sticky),
                                   (! server_supports_depth),

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/update.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/update.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/update.c Thu Dec  1 10:42:41 2022
@@ -560,7 +560,7 @@ update_internal(svn_revnum_t *result_rev
   /* Drive the reporter structure, describing the revisions within
      LOCAL_ABSPATH.  When this calls reporter->finish_report, the
      reporter will drive the update_editor. */
-  SVN_ERR(svn_wc_crawl_revisions5(ctx->wc_ctx, local_abspath, reporter,
+  SVN_ERR(svn_wc_crawl_revisions6(ctx->wc_ctx, local_abspath, reporter,
                                   report_baton, TRUE,
                                   depth, (! depth_is_sticky),
                                   (! server_supports_depth),

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/util.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/util.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_client/util.c Thu Dec  1 10:42:41 2022
@@ -426,7 +426,7 @@ fetch_base_func(const char **filename,
     }
 
   /* Reads the pristine of WORKING, not of BASE */
-  err = svn_wc_get_pristine_contents2(&pristine_stream, scb->wc_ctx,
+  err = svn_wc_get_pristine_contents3(&pristine_stream, scb->wc_ctx,
                                       local_abspath, scratch_pool,
                                       scratch_pool);
   if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/adm_crawler.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/adm_crawler.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/adm_crawler.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/adm_crawler.c Thu Dec  1 10:42:41 2022
@@ -221,10 +221,10 @@ maybe_restore_node(svn_wc__db_t *db,
 }
 
 svn_error_t *
-svn_wc_restore(svn_wc_context_t *wc_ctx,
-               const char *local_abspath,
-               svn_boolean_t use_commit_times,
-               apr_pool_t *scratch_pool)
+svn_wc_restore2(svn_wc_context_t *wc_ctx,
+                const char *local_abspath,
+                svn_boolean_t use_commit_times,
+                apr_pool_t *scratch_pool)
 {
   /* ### If ever revved: Add cancel func. */
   svn_wc__db_status_t status;
@@ -307,7 +307,7 @@ svn_wc_restore(svn_wc_context_t *wc_ctx,
    passed here to avoid another database query.
 
    DEPTH_COMPATIBILITY_TRICK means the same thing here as it does
-   in svn_wc_crawl_revisions5().
+   in svn_wc_crawl_revisions6().
 
    If RESTORE_FILES is set, then unexpectedly missing working files
    will be restored from text-base and NOTIFY_FUNC/NOTIFY_BATON
@@ -675,7 +675,7 @@ report_revisions_and_depths(svn_wc__db_t
 
 
 svn_error_t *
-svn_wc_crawl_revisions5(svn_wc_context_t *wc_ctx,
+svn_wc_crawl_revisions6(svn_wc_context_t *wc_ctx,
                         const char *local_abspath,
                         const svn_ra_reporter3_t *reporter,
                         void *report_baton,
@@ -1237,7 +1237,7 @@ svn_wc__internal_transmit_text_deltas(sv
 }
 
 svn_error_t *
-svn_wc_transmit_text_deltas3(const svn_checksum_t **new_text_base_md5_checksum,
+svn_wc_transmit_text_deltas4(const svn_checksum_t **new_text_base_md5_checksum,
                              const svn_checksum_t **new_text_base_sha1_checksum,
                              svn_wc_context_t *wc_ctx,
                              const char *local_abspath,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/adm_ops.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/adm_ops.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/adm_ops.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/adm_ops.c Thu Dec  1 10:42:41 2022
@@ -772,6 +772,7 @@ svn_wc_get_pristine_copy_path(const char
   svn_wc__db_t *db;
   const char *local_abspath;
   svn_error_t *err;
+  svn_boolean_t store_pristine;
 
   SVN_ERR(svn_dirent_get_absolute(&local_abspath, path, pool));
 
@@ -780,6 +781,18 @@ svn_wc_get_pristine_copy_path(const char
      may use repeatedly despite error return values. The rest of this
      function should aggressively close DB, even in the error case.  */
 
+  err = svn_wc__db_get_settings(NULL, &store_pristine, db, local_abspath, pool);
+  if (err)
+    return svn_error_compose_create(err, svn_wc__db_close(db));
+
+  if (!store_pristine)
+    {
+      err = svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE,
+                             NULL, NULL);
+
+      return svn_error_compose_create(err, svn_wc__db_close(db));
+    }
+
   err = svn_wc__textbase_setaside(pristine_path, db, local_abspath,
                                   NULL, NULL, NULL, pool, pool);
   if (err && err->apr_err == SVN_ERR_WC_PATH_UNEXPECTED_STATUS)
@@ -801,7 +814,7 @@ svn_wc_get_pristine_copy_path(const char
 
 
 svn_error_t *
-svn_wc_get_pristine_contents2(svn_stream_t **contents,
+svn_wc_get_pristine_contents3(svn_stream_t **contents,
                               svn_wc_context_t *wc_ctx,
                               const char *local_abspath,
                               apr_pool_t *result_pool,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/conflicts.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/conflicts.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/conflicts.c Thu Dec  1 10:42:41 2022
@@ -3365,6 +3365,13 @@ svn_wc_resolved_conflict5(svn_wc_context
                           void *notify_baton,
                           apr_pool_t *scratch_pool)
 {
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, local_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
+
   return svn_error_trace(svn_wc__resolve_conflicts(wc_ctx, local_abspath,
                                                    depth, resolve_text,
                                                    resolve_prop, resolve_tree,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/deprecated.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/deprecated.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/deprecated.c Thu Dec  1 10:42:41 2022
@@ -155,6 +155,47 @@ gather_traversal_info(svn_wc_context_t *
 /*** From adm_crawler.c ***/
 
 svn_error_t *
+svn_wc_crawl_revisions5(svn_wc_context_t *wc_ctx,
+                        const char *local_abspath,
+                        const svn_ra_reporter3_t *reporter,
+                        void *report_baton,
+                        svn_boolean_t restore_files,
+                        svn_depth_t depth,
+                        svn_boolean_t honor_depth_exclude,
+                        svn_boolean_t depth_compatibility_trick,
+                        svn_boolean_t use_commit_times,
+                        svn_cancel_func_t cancel_func,
+                        void *cancel_baton,
+                        svn_wc_notify_func2_t notify_func,
+                        void *notify_baton,
+                        apr_pool_t *scratch_pool)
+{
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, local_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
+
+  SVN_ERR(svn_wc_crawl_revisions6(wc_ctx,
+                                  local_abspath,
+                                  reporter,
+                                  report_baton,
+                                  restore_files,
+                                  depth,
+                                  honor_depth_exclude,
+                                  depth_compatibility_trick,
+                                  use_commit_times,
+                                  cancel_func,
+                                  cancel_baton,
+                                  notify_func,
+                                  notify_baton,
+                                  scratch_pool));
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_wc_crawl_revisions4(const char *path,
                         svn_wc_adm_access_t *adm_access,
                         const svn_ra_reporter3_t *reporter,
@@ -467,6 +508,37 @@ svn_wc_crawl_revisions(const char *path,
 }
 
 svn_error_t *
+svn_wc_transmit_text_deltas3(const svn_checksum_t **new_text_base_md5_checksum,
+                             const svn_checksum_t **new_text_base_sha1_checksum,
+                             svn_wc_context_t *wc_ctx,
+                             const char *local_abspath,
+                             svn_boolean_t fulltext,
+                             const svn_delta_editor_t *editor,
+                             void *file_baton,
+                             apr_pool_t *result_pool,
+                             apr_pool_t *scratch_pool)
+{
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, local_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
+
+  SVN_ERR(svn_wc_transmit_text_deltas4(new_text_base_md5_checksum,
+                                       new_text_base_sha1_checksum,
+                                       wc_ctx,
+                                       local_abspath,
+                                       fulltext,
+                                       editor,
+                                       file_baton,
+                                       result_pool,
+                                       scratch_pool));
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_wc_transmit_text_deltas2(const char **tempfile,
                              unsigned char digest[],
                              const char *path,
@@ -568,6 +640,27 @@ svn_wc_transmit_prop_deltas(const char *
   return svn_error_trace(svn_wc_context_destroy(wc_ctx));
 }
 
+svn_error_t *
+svn_wc_restore(svn_wc_context_t *wc_ctx,
+               const char *local_abspath,
+               svn_boolean_t use_commit_times,
+               apr_pool_t *scratch_pool)
+{
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, local_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
+
+  SVN_ERR(svn_wc_restore2(wc_ctx,
+                          local_abspath,
+                          use_commit_times,
+                          scratch_pool));
+
+  return SVN_NO_ERROR;
+}
+
 /*** From adm_files.c ***/
 svn_error_t *
 svn_wc_ensure_adm4(svn_wc_context_t *wc_ctx,
@@ -678,6 +771,29 @@ svn_wc_create_tmp_file2(apr_file_t **fp,
 
 /*** From adm_ops.c ***/
 svn_error_t *
+svn_wc_get_pristine_contents2(svn_stream_t **contents,
+                              svn_wc_context_t *wc_ctx,
+                              const char *local_abspath,
+                              apr_pool_t *result_pool,
+                              apr_pool_t *scratch_pool)
+{
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, local_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
+
+  SVN_ERR(svn_wc_get_pristine_contents3(contents,
+                                        wc_ctx,
+                                        local_abspath,
+                                        result_pool,
+                                        scratch_pool));
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_wc_get_pristine_contents(svn_stream_t **contents,
                              const char *path,
                              apr_pool_t *result_pool,
@@ -1107,6 +1223,45 @@ svn_wc_add(const char *path,
 
 /*** From revert.c ***/
 svn_error_t *
+svn_wc_revert6(svn_wc_context_t *wc_ctx,
+               const char *local_abspath,
+               svn_depth_t depth,
+               svn_boolean_t use_commit_times,
+               const apr_array_header_t *changelist_filter,
+               svn_boolean_t clear_changelists,
+               svn_boolean_t metadata_only,
+               svn_boolean_t added_keep_local,
+               svn_cancel_func_t cancel_func,
+               void *cancel_baton,
+               svn_wc_notify_func2_t notify_func,
+               void *notify_baton,
+               apr_pool_t *scratch_pool)
+{
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, local_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
+
+  SVN_ERR(svn_wc_revert7(wc_ctx,
+                         local_abspath,
+                         depth,
+                         use_commit_times,
+                         changelist_filter,
+                         clear_changelists,
+                         metadata_only,
+                         added_keep_local,
+                         cancel_func,
+                         cancel_baton,
+                         notify_func,
+                         notify_baton,
+                         scratch_pool));
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_wc_revert5(svn_wc_context_t *wc_ctx,
                const char *local_abspath,
                svn_depth_t depth,
@@ -2098,6 +2253,12 @@ svn_wc_get_diff_editor6(const svn_delta_
                         apr_pool_t *scratch_pool)
 {
   const svn_diff_tree_processor_t *diff_processor;
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, anchor_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
 
   /* --git implies --show-copies-as-adds */
   if (use_git_diff_format)
@@ -2297,6 +2458,43 @@ svn_wc_get_diff_editor(svn_wc_adm_access
 }
 
 svn_error_t *
+svn_wc_diff6(svn_wc_context_t *wc_ctx,
+             const char *local_abspath,
+             const svn_wc_diff_callbacks4_t *callbacks,
+             void *callback_baton,
+             svn_depth_t depth,
+             svn_boolean_t ignore_ancestry,
+             svn_boolean_t show_copies_as_adds,
+             svn_boolean_t use_git_diff_format,
+             const apr_array_header_t *changelist_filter,
+             svn_cancel_func_t cancel_func,
+             void *cancel_baton,
+             apr_pool_t *scratch_pool)
+{
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, local_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
+
+  SVN_ERR(svn_wc_diff7(wc_ctx,
+                       local_abspath,
+                       callbacks,
+                       callback_baton,
+                       depth,
+                       ignore_ancestry,
+                       show_copies_as_adds,
+                       use_git_diff_format,
+                       changelist_filter,
+                       cancel_func,
+                       cancel_baton,
+                       scratch_pool));
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_wc_diff5(svn_wc_adm_access_t *anchor,
              const char *target,
              const svn_wc_diff_callbacks3_t *callbacks,
@@ -2983,6 +3181,13 @@ svn_wc_get_status_editor5(const svn_delt
                           apr_pool_t *result_pool,
                           apr_pool_t *scratch_pool)
 {
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, anchor_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
+
   return svn_error_trace(
     svn_wc__get_status_editor(editor, edit_baton,
                               set_locks_baton,
@@ -3630,6 +3835,13 @@ svn_wc_get_update_editor4(const svn_delt
                           apr_pool_t *result_pool,
                           apr_pool_t *scratch_pool)
 {
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, anchor_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
+
   return svn_error_trace(
     svn_wc__get_update_editor(editor, edit_baton,
                               target_revision,
@@ -3816,6 +4028,13 @@ svn_wc_get_switch_editor4(const svn_delt
                           apr_pool_t *result_pool,
                           apr_pool_t *scratch_pool)
 {
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, anchor_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
+
   return svn_error_trace(
     svn_wc__get_switch_editor(editor, edit_baton,
                               target_revision,
@@ -4572,6 +4791,61 @@ svn_wc_copy(const char *src_path,
 /*** From merge.c ***/
 
 svn_error_t *
+svn_wc_merge5(enum svn_wc_merge_outcome_t *merge_content_outcome,
+              enum svn_wc_notify_state_t *merge_props_outcome,
+              svn_wc_context_t *wc_ctx,
+              const char *left_abspath,
+              const char *right_abspath,
+              const char *target_abspath,
+              const char *left_label,
+              const char *right_label,
+              const char *target_label,
+              const svn_wc_conflict_version_t *left_version,
+              const svn_wc_conflict_version_t *right_version,
+              svn_boolean_t dry_run,
+              const char *diff3_cmd,
+              const apr_array_header_t *merge_options,
+              apr_hash_t *original_props,
+              const apr_array_header_t *prop_diff,
+              svn_wc_conflict_resolver_func2_t conflict_func,
+              void *conflict_baton,
+              svn_cancel_func_t cancel_func,
+              void *cancel_baton,
+              apr_pool_t *scratch_pool)
+{
+  svn_boolean_t store_pristine;
+
+  SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, wc_ctx, target_abspath,
+                               scratch_pool));
+  if (!store_pristine)
+    return svn_error_create(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE, NULL, NULL);
+
+  SVN_ERR(svn_wc_merge6(merge_content_outcome,
+                        merge_props_outcome,
+                        wc_ctx,
+                        left_abspath,
+                        right_abspath,
+                        target_abspath,
+                        left_label,
+                        right_label,
+                        target_label,
+                        left_version,
+                        right_version,
+                        dry_run,
+                        diff3_cmd,
+                        merge_options,
+                        original_props,
+                        prop_diff,
+                        conflict_func,
+                        conflict_baton,
+                        cancel_func,
+                        cancel_baton,
+                        scratch_pool));
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_wc_merge4(enum svn_wc_merge_outcome_t *merge_outcome,
               svn_wc_context_t *wc_ctx,
               const char *left_abspath,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/diff_local.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/diff_local.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/diff_local.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/diff_local.c Thu Dec  1 10:42:41 2022
@@ -547,7 +547,7 @@ svn_wc__diff7(svn_boolean_t anchor_at_gi
 }
 
 svn_error_t *
-svn_wc_diff6(svn_wc_context_t *wc_ctx,
+svn_wc_diff7(svn_wc_context_t *wc_ctx,
              const char *local_abspath,
              const svn_wc_diff_callbacks4_t *callbacks,
              void *callback_baton,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/externals.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/externals.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/externals.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/externals.c Thu Dec  1 10:42:41 2022
@@ -1240,8 +1240,8 @@ svn_wc__crawl_file_external(svn_wc_conte
 
           if (disk_kind == svn_node_none)
             {
-              err = svn_wc_restore(wc_ctx, local_abspath, use_commit_times,
-                                   scratch_pool);
+              err = svn_wc_restore2(wc_ctx, local_abspath, use_commit_times,
+                                    scratch_pool);
 
               if (err)
                 {

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/merge.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/merge.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/merge.c Thu Dec  1 10:42:41 2022
@@ -1202,7 +1202,7 @@ svn_wc__internal_merge(svn_skel_t **work
 
 
 svn_error_t *
-svn_wc_merge5(enum svn_wc_merge_outcome_t *merge_content_outcome,
+svn_wc_merge6(enum svn_wc_merge_outcome_t *merge_content_outcome,
               enum svn_wc_notify_state_t *merge_props_outcome,
               svn_wc_context_t *wc_ctx,
               const char *left_abspath,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/revert.c
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/revert.c?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/revert.c (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/revert.c Thu Dec  1 10:42:41 2022
@@ -981,7 +981,7 @@ revert_partial(svn_wc__db_t *db,
 
 
 svn_error_t *
-svn_wc_revert6(svn_wc_context_t *wc_ctx,
+svn_wc_revert7(svn_wc_context_t *wc_ctx,
                const char *local_abspath,
                svn_depth_t depth,
                svn_boolean_t use_commit_times,

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/wc.h?rev=1905663&r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/wc.h (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/libsvn_wc/wc.h Thu Dec  1 10:42:41 2022
@@ -424,7 +424,7 @@ svn_wc__internal_file_modified_p(svn_boo
 
    Property changes sent by the update are provided in PROP_DIFF.
 
-   For a complete description, see svn_wc_merge5() for which this is
+   For a complete description, see svn_wc_merge6() for which this is
    the (loggy) implementation.
 
    *WORK_ITEMS will be allocated in RESULT_POOL. All temporary allocations
@@ -510,7 +510,7 @@ svn_wc__conflicted_for_update_p(svn_bool
                                 apr_pool_t *scratch_pool);
 
 
-/* Internal version of svn_wc_transmit_text_deltas3(). */
+/* Internal version of svn_wc_transmit_text_deltas4(). */
 svn_error_t *
 svn_wc__internal_transmit_text_deltas(svn_stream_t *tempstream,
                                       const svn_checksum_t **new_text_base_md5_checksum,



Re: svn commit: r1905663 - in /subversion/branches/pristines-on-demand-on-mwf/subversion: include/ include/private/ libsvn_client/ libsvn_wc/

Posted by Evgeny Kotkov via commits <co...@subversion.apache.org>.
Daniel Sahlberg <da...@gmail.com> writes:

>> +  /** @since New in 1.15 */
>> +  SVN_ERRDEF(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE,
>> +             SVN_ERR_WC_CATEGORY_START + 43,
>> +             "This client was not updated to support working copies "
>> +             "without local pristines")
>> +
>>    /* fs errors */
>
> Is it really "This client"? It looks more to be based on the WC setting.

This new error should only occur when someone (a 3rd party client) uses the
deprecated API function for a working copy without pristines.

From that point of view, I would say that the problem is in the client that is
still using the deprecated API and thus cannot properly handle such working
copies.

Also, the current message aims to be somewhat consistent with another existing
error for a case when a client is too old to read a newer working copy format:
 "This client is too old to work with the working copy […] (format 32)"

(After writing this, I realized that the "was not updated" part of the message
 may be misinterpreted as a requirement to update to the newer version of the
 software.  In r1905682, I slightly rephrased that part so that it would say:
   "This client uses a deprecated API that does not support working copies
    without local pristines")


Thanks,
Evgeny Kotkov

Re: svn commit: r1905663 - in /subversion/branches/pristines-on-demand-on-mwf/subversion: include/ include/private/ libsvn_client/ libsvn_wc/

Posted by Evgeny Kotkov via dev <de...@subversion.apache.org>.
Daniel Sahlberg <da...@gmail.com> writes:

>> +  /** @since New in 1.15 */
>> +  SVN_ERRDEF(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE,
>> +             SVN_ERR_WC_CATEGORY_START + 43,
>> +             "This client was not updated to support working copies "
>> +             "without local pristines")
>> +
>>    /* fs errors */
>
> Is it really "This client"? It looks more to be based on the WC setting.

This new error should only occur when someone (a 3rd party client) uses the
deprecated API function for a working copy without pristines.

From that point of view, I would say that the problem is in the client that is
still using the deprecated API and thus cannot properly handle such working
copies.

Also, the current message aims to be somewhat consistent with another existing
error for a case when a client is too old to read a newer working copy format:
 "This client is too old to work with the working copy […] (format 32)"

(After writing this, I realized that the "was not updated" part of the message
 may be misinterpreted as a requirement to update to the newer version of the
 software.  In r1905682, I slightly rephrased that part so that it would say:
   "This client uses a deprecated API that does not support working copies
    without local pristines")


Thanks,
Evgeny Kotkov

Re: svn commit: r1905663 - in /subversion/branches/pristines-on-demand-on-mwf/subversion: include/ include/private/ libsvn_client/ libsvn_wc/

Posted by Evgeny Kotkov via dev <de...@subversion.apache.org>.
Bert Huijben <be...@qqmail.nl> writes:

> All the now deprecated functions now fail unconditionally when the setting
> is enabled. Isn’t it possible to do this more graceful whenever a file is
> encountered which misses it’s prisite version?

The problem with this approach is that the functions are going to work, but
only *sometimes*, and will fail unpredictably, depending on whether a pristine
was fetched or removed by any previous API call.

With that in mind, failing consistently seems to be a more appropriate choice
for a deprecated function than failing randomly.

> As far as I know it is expected that some of the files do have pristines,
> while others don’t… That would allow things like diffs on old clients that
> didn’t switch apis yet.

Thinking about this, the currently documented assumption is that a file has
no pristine if and only if it's being added/replaced without a copyfrom.
So maybe we cannot really extend that to "any file might not have a pristine"
without it being an incompatible change.


Thanks,
Evgeny Kotkov

RE: svn commit: r1905663 - in /subversion/branches/pristines-on-demand-on-mwf/subversion: include/ include/private/ libsvn_client/ libsvn_wc/

Posted by Bert Huijben <be...@qqmail.nl>.
All the now deprecated functions now fail unconditionally when the setting is enabled. Isn’t it possible to do this more graceful whenever a file is encountered which misses it’s prisite version?

 �

As far as I know it is expected that some of the files do have pristines, while others don’t… That would allow things like diffs on old clients that didn’t switch apis yet.

 �

 �

And in many cases these clients might just pass a wc-ctx that was created with the client api, so they might even have support for obtaining the pristines via callbacks without even knowing… but now they fail because we just check a single boolean in the deprecated api.

 �

 �

I’m not even sure if this is really worth revving the apis without altering the arguments… We introduced new error codes on existing apis before, like when we switched to WC-NG.

 �

                Bert

 �

From: Daniel Sahlberg <da...@gmail.com> 
Sent: Thursday, December 1, 2022 1:14 PM
To: dev@subversion.apache.org
Cc: commits@subversion.apache.org
Subject: Re: svn commit: r1905663 - in /subversion/branches/pristines-on-demand-on-mwf/subversion: include/ include/private/ libsvn_client/ libsvn_wc/

 �

Den tors 1 dec. 2022 kl 11:42 skrev <kotkov@apache.org <ma...@apache.org> >:

Author: kotkov
Date: Thu Dec � 1 10:42:41 2022
New Revision: 1905663

 �

[...] �

 �

Modified: subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h
URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h?rev=1905663 <http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h?rev=1905663&r1=1905662&r2=1905663&view=diff> &r1=1905662&r2=1905663&view=diff
==============================================================================
--- subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h (original)
+++ subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h Thu Dec � 1 10:42:41 2022
@@ -581,6 +581,12 @@ SVN_ERROR_START
 �  �  �  �  �  �  � SVN_ERR_WC_CATEGORY_START + 42,
 �  �  �  �  �  �  � "Incompatible working copy settings")

+ � /** @since New in 1.15 */
+ � SVN_ERRDEF(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE,
+ �  �  �  �  �  �  �SVN_ERR_WC_CATEGORY_START + 43,
+ �  �  �  �  �  �  �"This client was not updated to support working copies "
+ �  �  �  �  �  �  �"without local pristines")
+
 �  �/* fs errors */

 �

Is it really "This client"? It looks more to be based on the WC setting.

 �

Kind regards,

/Daniel

 �


Re: svn commit: r1905663 - in /subversion/branches/pristines-on-demand-on-mwf/subversion: include/ include/private/ libsvn_client/ libsvn_wc/

Posted by Daniel Sahlberg <da...@gmail.com>.
Den tors 1 dec. 2022 kl 11:42 skrev <ko...@apache.org>:

> Author: kotkov
> Date: Thu Dec  1 10:42:41 2022
> New Revision: 1905663
>

[...]


> Modified:
> subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h
> URL:
> http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h?rev=1905663&r1=1905662&r2=1905663&view=diff
>
> ==============================================================================
> ---
> subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h
> (original)
> +++
> subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h
> Thu Dec  1 10:42:41 2022
> @@ -581,6 +581,12 @@ SVN_ERROR_START
>               SVN_ERR_WC_CATEGORY_START + 42,
>               "Incompatible working copy settings")
>
> +  /** @since New in 1.15 */
> +  SVN_ERRDEF(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE,
> +             SVN_ERR_WC_CATEGORY_START + 43,
> +             "This client was not updated to support working copies "
> +             "without local pristines")
> +
>    /* fs errors */
>

Is it really "This client"? It looks more to be based on the WC setting.

Kind regards,
/Daniel

Re: svn commit: r1905663 - in /subversion/branches/pristines-on-demand-on-mwf/subversion: include/ include/private/ libsvn_client/ libsvn_wc/

Posted by Daniel Sahlberg <da...@gmail.com>.
Den tors 1 dec. 2022 kl 11:42 skrev <ko...@apache.org>:

> Author: kotkov
> Date: Thu Dec  1 10:42:41 2022
> New Revision: 1905663
>

[...]


> Modified:
> subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h
> URL:
> http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h?rev=1905663&r1=1905662&r2=1905663&view=diff
>
> ==============================================================================
> ---
> subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h
> (original)
> +++
> subversion/branches/pristines-on-demand-on-mwf/subversion/include/svn_error_codes.h
> Thu Dec  1 10:42:41 2022
> @@ -581,6 +581,12 @@ SVN_ERROR_START
>               SVN_ERR_WC_CATEGORY_START + 42,
>               "Incompatible working copy settings")
>
> +  /** @since New in 1.15 */
> +  SVN_ERRDEF(SVN_ERR_WC_DEPRECATED_API_STORE_PRISTINE,
> +             SVN_ERR_WC_CATEGORY_START + 43,
> +             "This client was not updated to support working copies "
> +             "without local pristines")
> +
>    /* fs errors */
>

Is it really "This client"? It looks more to be based on the WC setting.

Kind regards,
/Daniel