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");