Modified: 
subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_update_move.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_update_move.c?rev=1908640&r1=1908639&r2=1908640&view=diff
==============================================================================
--- 
subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_update_move.c
 (original)
+++ 
subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_update_move.c
 Wed Mar 22 15:21:11 2023
@@ -909,7 +909,7 @@ static svn_error_t *
 tc_editor_add_file(node_move_baton_t *nmb,
                    const char *relpath,
                    svn_node_kind_t old_kind,
-                   const svn_checksum_t *checksum,
+                   const svn_wc__db_checksum_t *checksum,
                    apr_hash_t *props,
                    apr_pool_t *scratch_pool)
 {
@@ -1010,7 +1010,7 @@ static svn_error_t *
 tc_editor_incoming_add_file(node_move_baton_t *nmb,
                             const char *dst_relpath,
                             svn_node_kind_t old_kind,
-                            const svn_checksum_t *checksum,
+                            const svn_wc__db_checksum_t *checksum,
                             apr_hash_t *props,
                             const char *src_relpath,
                             const char *content_abspath,
@@ -1090,7 +1090,7 @@ typedef struct working_node_version_t
 {
   svn_wc_conflict_version_t *location_and_kind;
   apr_hash_t *props;
-  const svn_checksum_t *checksum; /* for files only */
+  const svn_wc__db_checksum_t *checksum; /* for files only */
 } working_node_version_t;
 
 /* Return *WORK_ITEMS to create a conflict on LOCAL_ABSPATH. */
@@ -1320,8 +1320,8 @@ tc_editor_alter_directory(node_move_bato
 static svn_error_t *
 tc_editor_alter_file(node_move_baton_t *nmb,
                      const char *dst_relpath,
-                     const svn_checksum_t *old_checksum,
-                     const svn_checksum_t *new_checksum,
+                     const svn_wc__db_checksum_t *old_checksum,
+                     const svn_wc__db_checksum_t *new_checksum,
                      apr_hash_t *old_props,
                      apr_hash_t *new_props,
                      apr_pool_t *scratch_pool)
@@ -1373,7 +1373,7 @@ tc_editor_alter_file(node_move_baton_t *
                                scratch_pool, scratch_pool));
 
   if (!obstructed
-      && !svn_checksum_match(new_version.checksum, old_version.checksum))
+      && !svn_wc__db_checksum_match(new_version.checksum, 
old_version.checksum))
     {
       svn_boolean_t is_locally_modified;
 
@@ -1497,8 +1497,8 @@ static svn_error_t *
 tc_editor_update_incoming_moved_file(node_move_baton_t *nmb,
                                      const char *dst_relpath,
                                      const char *src_relpath,
-                                     const svn_checksum_t *src_checksum,
-                                     const svn_checksum_t *dst_checksum,
+                                     const svn_wc__db_checksum_t *src_checksum,
+                                     const svn_wc__db_checksum_t *dst_checksum,
                                      apr_hash_t *dst_props,
                                      apr_hash_t *src_props,
                                      svn_boolean_t do_text_merge,
@@ -1952,7 +1952,7 @@ tc_incoming_editor_delete(node_move_bato
    than a hash, to allow the driver to process children in a defined order. */
 static svn_error_t *
 get_info(apr_hash_t **props,
-         const svn_checksum_t **checksum,
+         const svn_wc__db_checksum_t **checksum,
          apr_array_header_t **children,
          svn_node_kind_t *kind,
          const char *local_relpath,
@@ -2059,7 +2059,7 @@ update_moved_away_node(node_move_baton_t
 {
   update_move_baton_t *b = nmb->umb;
   svn_node_kind_t src_kind, dst_kind;
-  const svn_checksum_t *src_checksum, *dst_checksum;
+  const svn_wc__db_checksum_t *src_checksum, *dst_checksum;
   apr_hash_t *src_props, *dst_props;
   apr_array_header_t *src_children, *dst_children;
 
@@ -2105,7 +2105,7 @@ update_moved_away_node(node_move_baton_t
 
       if (src_kind == svn_node_file || src_kind == svn_node_symlink)
         {
-          if (!props_equal || !svn_checksum_match(src_checksum, dst_checksum))
+          if (!props_equal || !svn_wc__db_checksum_match(src_checksum, 
dst_checksum))
             SVN_ERR(tc_editor_alter_file(nmb, dst_relpath,
                                          dst_checksum, src_checksum,
                                          dst_props, src_props, scratch_pool));
@@ -2434,7 +2434,7 @@ svn_wc__db_update_moved_away_conflict_vi
 
 static svn_error_t *
 get_working_info(apr_hash_t **props,
-                 const svn_checksum_t **checksum,
+                 const svn_wc__db_checksum_t **checksum,
                  apr_array_header_t **children,
                  svn_node_kind_t *kind,
                  const char *local_relpath,
@@ -2523,7 +2523,7 @@ update_incoming_moved_node(node_move_bat
   update_move_baton_t *b = nmb->umb;
   svn_node_kind_t orig_kind, working_kind;
   const char *victim_relpath = src_relpath;
-  const svn_checksum_t *orig_checksum, *working_checksum;
+  const svn_wc__db_checksum_t *orig_checksum, *working_checksum;
   apr_hash_t *orig_props, *working_props;
   apr_array_header_t *orig_children, *working_children;
 
@@ -3011,10 +3011,10 @@ update_local_add_notify_obstructed_or_mi
 static svn_error_t *
 tc_editor_update_add_new_file(added_node_baton_t *nb,
                               svn_node_kind_t base_kind,
-                              const svn_checksum_t *base_checksum,
+                              const svn_wc__db_checksum_t *base_checksum,
                               apr_hash_t *base_props,
                               svn_node_kind_t working_kind,
-                              const svn_checksum_t *working_checksum,
+                              const svn_wc__db_checksum_t *working_checksum,
                               apr_hash_t *working_props,
                               apr_pool_t *scratch_pool)
 {
@@ -3146,8 +3146,8 @@ update_incoming_add_merge_props(svn_wc_n
 
 static svn_error_t *
 tc_editor_update_add_merge_files(added_node_baton_t *nb,
-                                 const svn_checksum_t *working_checksum,
-                                 const svn_checksum_t *base_checksum,
+                                 const svn_wc__db_checksum_t *working_checksum,
+                                 const svn_wc__db_checksum_t *base_checksum,
                                  apr_hash_t *working_props,
                                  apr_hash_t *base_props,
                                  apr_pool_t *scratch_pool)
@@ -3388,7 +3388,7 @@ update_locally_added_node(added_node_bat
   svn_wc__db_wcroot_t *wcroot = b->wcroot;
   svn_wc__db_t *db = b->db;
   svn_node_kind_t base_kind, working_kind;
-  const svn_checksum_t *base_checksum;
+  const svn_wc__db_checksum_t *base_checksum;
   apr_hash_t *base_props, *working_props;
   apr_array_header_t *base_children, *working_children;
   const char *local_abspath = svn_dirent_join(wcroot->abspath,
@@ -3467,11 +3467,22 @@ update_locally_added_node(added_node_bat
     {
       if (working_kind == svn_node_file || working_kind == svn_node_symlink)
         {
-          svn_checksum_t *working_checksum = NULL;
+          svn_wc__db_checksum_t *working_checksum = NULL;
 
           if (base_checksum)
-            SVN_ERR(svn_io_file_checksum2(&working_checksum, local_abspath,
-                                          base_checksum->kind, scratch_pool));
+            {
+              apr_file_t *file;
+
+              SVN_ERR(svn_io_file_open(&file, local_abspath, APR_READ,
+                                       APR_OS_DEFAULT, scratch_pool));
+
+              SVN_ERR(svn_wc__db_checksum_stream_contents(
+                        &working_checksum,
+                        svn_stream_from_aprfile2(file, FALSE, scratch_pool),
+                        base_checksum->value->kind, base_checksum->salt,
+                        scratch_pool, scratch_pool));
+            }
+
           SVN_ERR(tc_editor_update_add_new_file(nb, base_kind, base_checksum,
                                                 base_props, working_kind,
                                                 working_checksum, 
working_props,
@@ -3491,13 +3502,20 @@ update_locally_added_node(added_node_bat
 
       if (working_kind == svn_node_file || working_kind == svn_node_symlink)
         {
-          svn_checksum_t *working_checksum;
+          svn_wc__db_checksum_t *working_checksum;
+          apr_file_t *file;
+
+          SVN_ERR(svn_io_file_open(&file, local_abspath, APR_READ,
+                                   APR_OS_DEFAULT, scratch_pool));
+
+          SVN_ERR(svn_wc__db_checksum_stream_contents(
+                    &working_checksum,
+                    svn_stream_from_aprfile2(file, FALSE, scratch_pool),
+                    base_checksum->value->kind, base_checksum->salt,
+                    scratch_pool, scratch_pool));
 
-          SVN_ERR_ASSERT(base_checksum);
-          SVN_ERR(svn_io_file_checksum2(&working_checksum, local_abspath,
-                                        base_checksum->kind, scratch_pool));
-          if (!props_equal || !svn_checksum_match(base_checksum,
-                                                  working_checksum))
+          if (!props_equal || !svn_wc__db_checksum_match(base_checksum,
+                                                         working_checksum))
             SVN_ERR(tc_editor_update_add_merge_files(nb, working_checksum,
                                                      base_checksum,
                                                      working_props, base_props,

Modified: 
subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_util.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_util.c?rev=1908640&r1=1908639&r2=1908640&view=diff
==============================================================================
--- 
subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_util.c 
(original)
+++ 
subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_util.c 
Wed Mar 22 15:21:11 2023
@@ -39,6 +39,7 @@
 
 #include "svn_dirent_uri.h"
 #include "private/svn_sqlite.h"
+#include "private/svn_string_private.h"
 
 #include "wc.h"
 #include "adm_files.h"
@@ -152,3 +153,158 @@ svn_wc__db_util_open_db(svn_sqlite__db_t
   return SVN_NO_ERROR;
 }
 
+
+svn_error_t *
+svn_wc__db_util_read_settings(svn_boolean_t *store_pristine_p,
+                              const svn_wc__db_checksum_kind_t 
**pristine_checksum_kind_p,
+                              svn_sqlite__db_t *sdb,
+                              int format,
+                              apr_int64_t wc_id,
+                              apr_pool_t *result_pool,
+                              apr_pool_t *scratch_pool)
+{
+  static const svn_string_t empty_salt = SVN__STATIC_STRING("");
+
+  if (format >= SVN_WC__HAS_SETTINGS)
+    {
+      svn_sqlite__stmt_t *stmt;
+
+      SVN_ERR(svn_sqlite__get_statement(&stmt, sdb, STMT_SELECT_SETTINGS));
+      SVN_ERR(svn_sqlite__bindf(stmt, "i", wc_id));
+      SVN_ERR(svn_sqlite__step_row(stmt));
+
+      if (store_pristine_p)
+        *store_pristine_p = svn_sqlite__column_boolean(stmt, 0);
+
+      if (pristine_checksum_kind_p)
+        {
+          svn_wc__db_pristine_checksum_kind_t db_checksum_kind;
+          svn_checksum_kind_t checksum_kind;
+          const svn_string_t *checksum_salt;
+
+          db_checksum_kind = svn_sqlite__column_int(stmt, 1);
+          if (db_checksum_kind == svn_wc__db_pristine_checksum_sha1)
+            {
+              checksum_kind = svn_checksum_sha1;
+            }
+          else
+            {
+              return svn_error_createf(
+                       SVN_ERR_WC_CORRUPT,
+                       svn_sqlite__reset(stmt),
+                       _("Unexpected value of the '%s' column (%d)"),
+                       "pristine_checksum_kind",
+                       db_checksum_kind);
+            }
+
+          if (svn_sqlite__column_boolean(stmt, 2))
+            {
+              const void *salt;
+              apr_size_t salt_len;
+
+              salt = svn_sqlite__column_blob(stmt, 3, &salt_len, NULL);
+              checksum_salt = svn_string_ncreate(salt, salt_len, scratch_pool);
+            }
+          else
+            {
+              checksum_salt = &empty_salt;
+            }
+
+          *pristine_checksum_kind_p =
+             svn_wc__db_checksum_kind_make(checksum_kind, checksum_salt,
+                                           result_pool);
+        }
+
+      SVN_ERR(svn_sqlite__step_done(stmt));
+    }
+  else
+    {
+      if (store_pristine_p)
+        *store_pristine_p = TRUE;
+      if (pristine_checksum_kind_p)
+        *pristine_checksum_kind_p =
+           svn_wc__db_checksum_kind_make(svn_checksum_sha1, &empty_salt,
+                                         result_pool);
+    }
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_wc__db_util_column_wc_checksum(const svn_wc__db_checksum_t **checksum_p,
+                                   svn_wc__db_wcroot_t *wcroot,
+                                   svn_sqlite__stmt_t *stmt,
+                                   int slot,
+                                   apr_pool_t *result_pool,
+                                   apr_pool_t *scratch_pool)
+{
+  const char *data = svn_sqlite__column_text(stmt, slot, NULL);
+
+  if (data == NULL)
+    {
+      *checksum_p = NULL;
+    }
+  else
+    {
+      const svn_string_t *salt;
+      const svn_checksum_t *checksum;
+
+      if (*data == 's')
+        {
+          if (wcroot->format < SVN_WC__HAS_PRISTINE_CHECKSUM_SALT)
+            return svn_error_create(SVN_ERR_WC_CORRUPT, NULL,
+                                    _("Unexpected value of the checksum 
column"));
+
+          salt = wcroot->pristine_checksum_kind->salt;
+          data++;
+        }
+      else
+        {
+          static const svn_string_t empty_salt = SVN__STATIC_STRING("");
+          salt = &empty_salt;
+        }
+
+      SVN_ERR(svn_checksum_deserialize(&checksum, data, scratch_pool,
+                                       scratch_pool));
+
+      *checksum_p = svn_wc__db_checksum_make(checksum, salt, result_pool);
+    }
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_wc__db_util_bind_wc_checksum(svn_wc__db_wcroot_t *wcroot,
+                                 svn_sqlite__stmt_t *stmt,
+                                 int slot,
+                                 const svn_wc__db_checksum_t *checksum,
+                                 apr_pool_t *scratch_pool)
+{
+  const char *data;
+
+  if (checksum)
+    {
+      if (svn_string_isempty(checksum->salt))
+        {
+          data = "";
+        }
+      else
+        {
+          SVN_ERR_ASSERT(wcroot->format >= SVN_WC__HAS_PRISTINE_CHECKSUM_SALT);
+          data = "s";
+        }
+
+      data = apr_pstrcat(
+               scratch_pool, data,
+               svn_checksum_serialize(checksum->value, scratch_pool, 
scratch_pool),
+               SVN_VA_NULL);
+    }
+  else
+    {
+      data = NULL;
+    }
+
+  SVN_ERR(svn_sqlite__bind_text(stmt, slot, data));
+
+  return SVN_NO_ERROR;
+}

Modified: 
subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_wcroot.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_wcroot.c?rev=1908640&r1=1908639&r2=1908640&view=diff
==============================================================================
--- 
subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_wcroot.c 
(original)
+++ 
subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/wc_db_wcroot.c 
Wed Mar 22 15:21:11 2023
@@ -302,7 +302,7 @@ svn_wc__db_pdh_create_wcroot(svn_wc__db_
                              int format,
                              svn_boolean_t verify_format,
                              svn_boolean_t store_pristine,
-                             svn_checksum_kind_t pristine_checksum_kind,
+                             const svn_wc__db_checksum_kind_t 
*pristine_checksum_kind,
                              apr_pool_t *result_pool,
                              apr_pool_t *scratch_pool)
 {
@@ -498,56 +498,6 @@ verify_stats_table(svn_sqlite__db_t *sdb
   return SVN_NO_ERROR;
 }
 
-/* Read and return the settings for WC_ID in SDB. */
-static svn_error_t *
-read_settings(svn_boolean_t *store_pristine_p,
-              svn_checksum_kind_t *pristine_checksum_kind_p,
-              svn_sqlite__db_t *sdb,
-              int format,
-              apr_int64_t wc_id,
-              apr_pool_t *scratch_pool)
-{
-  if (format >= SVN_WC__HAS_SETTINGS)
-    {
-      svn_sqlite__stmt_t *stmt;
-      svn_wc__db_pristine_checksum_kind_t db_checksum_kind;
-
-      SVN_ERR(svn_sqlite__get_statement(&stmt, sdb, STMT_SELECT_SETTINGS));
-      SVN_ERR(svn_sqlite__bindf(stmt, "i", wc_id));
-      SVN_ERR(svn_sqlite__step_row(stmt));
-
-      *store_pristine_p = svn_sqlite__column_boolean(stmt, 0);
-
-      db_checksum_kind = svn_sqlite__column_int(stmt, 1);
-      if (db_checksum_kind == svn_wc__db_pristine_checksum_sha1)
-        {
-          *pristine_checksum_kind_p = svn_checksum_sha1;
-        }
-      else if (format >= SVN_WC__HAS_PRISTINE_CHECKSUM_SHA1_SALTED &&
-               db_checksum_kind == svn_wc__db_pristine_checksum_sha1_salted)
-        {
-          *pristine_checksum_kind_p = svn_checksum_sha1_salted;
-        }
-      else
-        {
-          return svn_error_createf(SVN_ERR_WC_CORRUPT,
-                                   svn_sqlite__reset(stmt),
-                                   _("Unexpected value of the '%s' column 
(%d)"),
-                                   "pristine_checksum_kind",
-                                   db_checksum_kind);
-        }
-
-      SVN_ERR(svn_sqlite__step_done(stmt));
-    }
-  else
-    {
-      *store_pristine_p = TRUE;
-      *pristine_checksum_kind_p = svn_checksum_sha1;
-    }
-
-  return SVN_NO_ERROR;
-}
-
 /* Sqlite transaction helper for opening the db in
    svn_wc__db_wcroot_parse_local_abspath() to avoid multiple
    db operations that each obtain and release a lock */
@@ -555,8 +505,9 @@ static svn_error_t *
 fetch_sdb_info(apr_int64_t *wc_id,
                int *format,
                svn_boolean_t *store_pristine,
-               svn_checksum_kind_t *pristine_checksum_kind,
+               const svn_wc__db_checksum_kind_t **pristine_checksum_kind,
                svn_sqlite__db_t *sdb,
+               apr_pool_t *result_pool,
                apr_pool_t *scratch_pool)
 {
   *wc_id = -1;
@@ -566,8 +517,10 @@ fetch_sdb_info(apr_int64_t *wc_id,
         svn_wc__db_util_fetch_wc_id(wc_id, sdb, scratch_pool),
         svn_sqlite__read_schema_version(format, sdb, scratch_pool),
         verify_stats_table(sdb, *format, scratch_pool),
-        read_settings(store_pristine, pristine_checksum_kind, sdb,
-                      *format, *wc_id, scratch_pool),
+        svn_wc__db_util_read_settings(store_pristine,
+                                      pristine_checksum_kind,
+                                      sdb, *format, *wc_id,
+                                      result_pool, scratch_pool),
         sdb);
 
   return SVN_NO_ERROR;
@@ -821,11 +774,12 @@ try_symlink_as_dir:
       apr_int64_t wc_id;
       int format;
       svn_boolean_t store_pristine;
-      svn_checksum_kind_t pristine_checksum_kind;
+      const svn_wc__db_checksum_kind_t *pristine_checksum_kind;
       svn_error_t *err;
 
       err = fetch_sdb_info(&wc_id, &format, &store_pristine,
-                           &pristine_checksum_kind, sdb, scratch_pool);
+                           &pristine_checksum_kind,
+                           sdb, scratch_pool, scratch_pool);
       if (err)
         {
           if (err->apr_err == SVN_ERR_WC_CORRUPT)
@@ -846,7 +800,9 @@ try_symlink_as_dir:
                                           : local_abspath),
                             sdb, wc_id, format,
                             db->verify_format,
-                            store_pristine, pristine_checksum_kind,
+                            store_pristine,
+                            
svn_wc__db_checksum_kind_dup(pristine_checksum_kind,
+                                                         db->state_pool),
                             db->state_pool, scratch_pool);
       if (err && (err->apr_err == SVN_ERR_WC_UNSUPPORTED_FORMAT ||
                   err->apr_err == SVN_ERR_WC_UPGRADE_REQUIRED) &&
@@ -922,7 +878,11 @@ try_symlink_as_dir:
                                           : local_abspath),
                             NULL, UNKNOWN_WC_ID, wc_format,
                             db->verify_format,
-                            TRUE, svn_checksum_sha1,
+                            TRUE,
+                            svn_wc__db_checksum_kind_make(
+                              svn_checksum_sha1,
+                              svn_string_create_empty(scratch_pool),
+                              db->state_pool),
                             db->state_pool, scratch_pool));
     }
 

Modified: 
subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/workqueue.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/workqueue.c?rev=1908640&r1=1908639&r2=1908640&view=diff
==============================================================================
--- subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/workqueue.c 
(original)
+++ subversion/branches/pristine-checksum-salt/subversion/libsvn_wc/workqueue.c 
Wed Mar 22 15:21:11 2023
@@ -491,7 +491,7 @@ run_file_install(work_item_baton_t *wqb,
   apr_int64_t val;
   const char *wcroot_abspath;
   const char *source_abspath;
-  const svn_checksum_t *checksum;
+  const svn_wc__db_checksum_t *checksum;
   apr_hash_t *props;
   svn_boolean_t is_special;
   svn_boolean_t is_executable;

Modified: subversion/branches/pristine-checksum-salt/subversion/svn/info-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-salt/subversion/svn/info-cmd.c?rev=1908640&r1=1908639&r2=1908640&view=diff
==============================================================================
--- subversion/branches/pristine-checksum-salt/subversion/svn/info-cmd.c 
(original)
+++ subversion/branches/pristine-checksum-salt/subversion/svn/info-cmd.c Wed 
Mar 22 15:21:11 2023
@@ -773,6 +773,8 @@ print_info(void *baton,
 
   if (info->wc_info)
     {
+      const char *kind_str;
+
       if (info->wc_info->store_pristine)
         SVN_ERR(svn_cmdline_fputs(_("Working Copy Store Pristine: yes\n"),
                                   stdout, pool));
@@ -780,22 +782,27 @@ print_info(void *baton,
         SVN_ERR(svn_cmdline_fputs(_("Working Copy Store Pristine: no\n"),
                                   stdout, pool));
 
-      switch (info->wc_info->pristine_checksum_kind)
+      if (info->wc_info->pristine_checksum_kind)
         {
-        case svn_checksum_sha1:
-          SVN_ERR(svn_cmdline_fputs(_("Working Copy Checksum Kind: SHA1\n"),
-                                    stdout, pool));
-          break;
-
-        case svn_checksum_sha1_salted:
-          SVN_ERR(svn_cmdline_fputs(_("Working Copy Checksum Kind: Salted 
SHA1\n"),
-                                    stdout, pool));
-          break;
-
-        default:
-          SVN_ERR(svn_cmdline_fputs(_("Working Copy Checksum Kind: INVALID\n"),
-                                    stdout, pool));
-          break;
+          switch (info->wc_info->pristine_checksum_kind->value)
+            {
+            case svn_checksum_sha1:
+              kind_str = "SHA1";
+              break;
+
+            default:
+              kind_str = "INVALID";
+              break;
+            }
+
+          if (svn_string_isempty(info->wc_info->pristine_checksum_kind->salt))
+            SVN_ERR(svn_cmdline_printf(pool,
+                                       _("Working Copy Checksum Kind: %s\n"),
+                                       kind_str));
+          else
+            SVN_ERR(svn_cmdline_printf(pool,
+                                       _("Working Copy Checksum Kind: Salted 
%s\n"),
+                                       kind_str));
         }
     }
 

Modified: 
subversion/branches/pristine-checksum-salt/subversion/tests/cmdline/svntest/wc.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-salt/subversion/tests/cmdline/svntest/wc.py?rev=1908640&r1=1908639&r2=1908640&view=diff
==============================================================================
--- 
subversion/branches/pristine-checksum-salt/subversion/tests/cmdline/svntest/wc.py
 (original)
+++ 
subversion/branches/pristine-checksum-salt/subversion/tests/cmdline/svntest/wc.py
 Wed Mar 22 15:21:11 2023
@@ -1143,7 +1143,7 @@ def text_base_path(file_path):
   if wc_pristine_checksum_kind == 'SHA1':
     subdir_prefix = ''
   elif wc_pristine_checksum_kind == 'Salted SHA1':
-    subdir_prefix = 'ssh1-'
+    subdir_prefix = 'ssha1-'
   else:
     raise svntest.Failure
 

Modified: 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_client/client-test.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_client/client-test.c?rev=1908640&r1=1908639&r2=1908640&view=diff
==============================================================================
--- 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_client/client-test.c
 (original)
+++ 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_client/client-test.c
 Wed Mar 22 15:21:11 2023
@@ -474,7 +474,7 @@ test_wc_add_scenarios(const svn_test_opt
                                ctx, pool));
 
   SVN_ERR(svn_wc__get_settings(NULL, &store_pristine, NULL, ctx->wc_ctx,
-                               wc_path, pool));
+                               wc_path, NULL, pool));
   if (!store_pristine)
     return svn_error_create(SVN_ERR_TEST_SKIPPED, NULL,
                             "Test assumes a working copy with pristine");

Modified: 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/db-test.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/db-test.c?rev=1908640&r1=1908639&r2=1908640&view=diff
==============================================================================
--- 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/db-test.c 
(original)
+++ 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/db-test.c 
Wed Mar 22 15:21:11 2023
@@ -355,7 +355,7 @@ test_getting_info(const svn_test_opts_t
   apr_time_t changed_date;
   const char *changed_author;
   svn_depth_t depth;
-  const svn_checksum_t *checksum;
+  const svn_wc__db_checksum_t *checksum;
   const char *target;
   svn_boolean_t had_props;
   apr_hash_t *props;
@@ -402,7 +402,7 @@ test_getting_info(const svn_test_opts_t
             db, svn_dirent_join(local_abspath, "A", pool),
             pool, pool));
   SVN_TEST_ASSERT(kind == svn_node_file);
-  SVN_TEST_STRING_ASSERT(SHA1_1, svn_checksum_to_cstring(checksum, pool));
+  SVN_TEST_STRING_ASSERT(SHA1_1, svn_checksum_to_cstring(checksum->value, 
pool));
   SVN_TEST_STRING_ASSERT(repos_relpath, "A");
   SVN_TEST_STRING_ASSERT(repos_root_url, ROOT_ONE);
   SVN_TEST_STRING_ASSERT(repos_uuid, UUID_ONE);
@@ -474,7 +474,7 @@ test_getting_info(const svn_test_opts_t
             db, svn_dirent_join(local_abspath, "F", pool),
             pool, pool));
   SVN_TEST_STRING_ASSERT(SHA1_1,
-                         svn_checksum_to_cstring(checksum, pool));
+                         svn_checksum_to_cstring(checksum->value, pool));
 
   /* Test: alternate repository (switched file). */
   SVN_ERR(svn_wc__db_base_get_info(
@@ -603,7 +603,8 @@ test_inserting_nodes(const svn_test_opts
                      apr_pool_t *pool)
 {
   const char *local_abspath;
-  svn_checksum_t *checksum;
+  svn_wc__db_checksum_t *checksum;
+  svn_checksum_t *checksum_value;
   svn_wc__db_t *db;
   apr_hash_t *props;
   const apr_array_header_t *children;
@@ -615,7 +616,11 @@ test_inserting_nodes(const svn_test_opts
 
   children = svn_cstring_split("N-a N-b N-c", " ", FALSE, pool);
 
-  SVN_ERR(svn_checksum_parse_hex(&checksum, svn_checksum_sha1, SHA1_1, pool));
+  SVN_ERR(svn_checksum_parse_hex(&checksum_value, svn_checksum_sha1,
+                                 SHA1_1, pool));
+  checksum = svn_wc__db_checksum_make(checksum_value,
+                                      svn_string_create_empty(pool),
+                                      pool);
 
   /* Create a new directory and several child nodes. */
   set_prop(props, "for-file", "N", pool);
@@ -793,7 +798,7 @@ test_working_info(const svn_test_opts_t
   const char *changed_author;
   apr_time_t recorded_time;
   svn_depth_t depth;
-  const svn_checksum_t *checksum;
+  const svn_wc__db_checksum_t *checksum;
   svn_filesize_t recorded_size;
   const char *target;
   const char *changelist;
@@ -1419,7 +1424,8 @@ test_externals_store(const svn_test_opts
 {
   svn_wc__db_t *db;
   const char *local_abspath;
-  svn_checksum_t *orig_checksum;
+  svn_wc__db_checksum_t *orig_checksum;
+  svn_checksum_t *checksum_value;
   const char *file_external_path;
   const char *dir_external_path;
   const char *subdir;
@@ -1433,9 +1439,13 @@ test_externals_store(const svn_test_opts
   /* Directory I exists in the standard test db */
   subdir = svn_dirent_join(local_abspath, "I", pool);
 
-  SVN_ERR(svn_checksum_parse_hex(&orig_checksum, svn_checksum_sha1, SHA1_1,
+  SVN_ERR(svn_checksum_parse_hex(&checksum_value, svn_checksum_sha1, SHA1_1,
                                  pool));
 
+  orig_checksum = svn_wc__db_checksum_make(checksum_value,
+                                           svn_string_create_empty(pool),
+                                           pool);
+
   file_external_path = svn_dirent_join(subdir, "file-external", pool);
   dir_external_path = svn_dirent_join(subdir, "dir-external", pool);
 

Modified: 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/pristine-store-test.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/pristine-store-test.c?rev=1908640&r1=1908639&r2=1908640&view=diff
==============================================================================
--- 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/pristine-store-test.c
 (original)
+++ 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/pristine-store-test.c
 Wed Mar 22 15:21:11 2023
@@ -84,7 +84,8 @@ pristine_write_read(const svn_test_opts_
 
   const char data[] = "Blah";
   svn_string_t *data_string = svn_string_create(data, pool);
-  svn_checksum_t *data_checksum, *data_md5;
+  svn_wc__db_checksum_t *data_checksum;
+  svn_checksum_t *data_md5;
 
   SVN_ERR(create_repos_and_wc(&wc_abspath, &db,
                               "pristine_write_read", opts, pool));
@@ -189,7 +190,8 @@ pristine_delete_while_open(const svn_tes
   apr_size_t sz;
 
   const char data[] = "Blah";
-  svn_checksum_t *data_checksum, *data_md5;
+  svn_wc__db_checksum_t *data_checksum;
+  svn_checksum_t *data_md5;
 
   SVN_ERR(create_repos_and_wc(&wc_abspath, &db,
                               "pristine_delete_while_open", opts, pool));
@@ -256,7 +258,8 @@ reject_mismatching_text(const svn_test_o
   const char *wc_abspath;
 
   const char data[] = "Blah";
-  svn_checksum_t *data_checksum, *data_md5;
+  svn_wc__db_checksum_t *data_checksum;
+  svn_checksum_t *data_md5;
 
   const char data2[] = "Baz";
 
@@ -326,7 +329,8 @@ pristine_install_dehydrated(const svn_te
   apr_size_t sz;
 
   const char data[] = "Blah";
-  svn_checksum_t *data_checksum, *data_md5;
+  svn_wc__db_checksum_t *data_checksum;
+  svn_checksum_t *data_md5;
 
   svn_boolean_t store_pristine;
 
@@ -334,7 +338,7 @@ pristine_install_dehydrated(const svn_te
                               "pristine_install_dehydrated", opts, pool));
 
   SVN_ERR(svn_wc__db_get_settings(NULL, &store_pristine, NULL, db,
-                                  wc_abspath, pool));
+                                  wc_abspath, NULL, pool));
   if (store_pristine)
     return svn_error_create(SVN_ERR_TEST_SKIPPED, NULL,
                             "Test assumes a working copy without pristine");
@@ -437,7 +441,8 @@ pristine_dehydrate(const svn_test_opts_t
 
   const char data[] = "Blah";
   svn_string_t *data_string = svn_string_create(data, pool);
-  svn_checksum_t *data_checksum, *data_md5;
+  svn_wc__db_checksum_t *data_checksum;
+  svn_checksum_t *data_md5;
 
   svn_boolean_t store_pristine;
 
@@ -445,7 +450,7 @@ pristine_dehydrate(const svn_test_opts_t
                               "pristine_dehydrate", opts, pool));
 
   SVN_ERR(svn_wc__db_get_settings(NULL, &store_pristine, NULL, db,
-                                  wc_abspath, pool));
+                                  wc_abspath, NULL, pool));
   if (store_pristine)
     return svn_error_create(SVN_ERR_TEST_SKIPPED, NULL,
                             "Test assumes a working copy without pristine");

Modified: 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/wc-test.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/wc-test.c?rev=1908640&r1=1908639&r2=1908640&view=diff
==============================================================================
--- 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/wc-test.c 
(original)
+++ 
subversion/branches/pristine-checksum-salt/subversion/tests/libsvn_wc/wc-test.c 
Wed Mar 22 15:21:11 2023
@@ -783,7 +783,7 @@ test_get_pristine_copy_path(const svn_te
   SVN_ERR(svn_test__sandbox_create(&b, "get_pristine_copy_path", opts, pool));
 
   SVN_ERR(svn_wc__db_get_settings(NULL, &store_pristine, NULL,
-                                  b.wc_ctx->db, b.wc_abspath, pool));
+                                  b.wc_ctx->db, b.wc_abspath, NULL, pool));
   if (!store_pristine)
     return svn_error_create(SVN_ERR_TEST_SKIPPED, NULL,
                             "Test assumes a working copy with pristine");


Reply via email to