Author: ivan
Date: Wed Sep 23 08:38:47 2026
New Revision: 1938455
Log:
On the 'reparentless' branch: Catchup from 'trunk'.
Modified:
subversion/branches/reparentless/ (props changed)
subversion/branches/reparentless/subversion/libsvn_client/cat.c
subversion/branches/reparentless/subversion/libsvn_client/diff_local.c
subversion/branches/reparentless/subversion/libsvn_client/export.c
subversion/branches/reparentless/subversion/libsvn_client/import.c
subversion/branches/reparentless/subversion/libsvn_client/patch.c
subversion/branches/reparentless/subversion/libsvn_ra_serf/get_lock.c
subversion/branches/reparentless/subversion/libsvn_repos/repos.c
subversion/branches/reparentless/subversion/libsvn_subr/subst.c
subversion/branches/reparentless/subversion/libsvn_wc/deprecated.c
Modified: subversion/branches/reparentless/subversion/libsvn_client/cat.c
==============================================================================
--- subversion/branches/reparentless/subversion/libsvn_client/cat.c Wed Sep
23 08:35:39 2026 (r1938454)
+++ subversion/branches/reparentless/subversion/libsvn_client/cat.c Wed Sep
23 08:38:47 2026 (r1938455)
@@ -60,7 +60,7 @@ svn_client__get_normalized_stream(svn_st
apr_hash_t *kw = NULL;
svn_subst_eol_style_t style;
apr_hash_t *props;
- svn_string_t *eol_style, *keywords, *special;
+ const char *eol_style, *keywords, *special;
const char *eol = NULL;
svn_boolean_t local_mod = FALSE;
svn_stream_t *input;
@@ -110,12 +110,11 @@ svn_client__get_normalized_stream(svn_st
local_mod = TRUE;
}
- eol_style = svn_hash_gets(props, SVN_PROP_EOL_STYLE);
- keywords = svn_hash_gets(props, SVN_PROP_KEYWORDS);
- special = svn_hash_gets(props, SVN_PROP_SPECIAL);
+ eol_style = svn_prop_get_value(props, SVN_PROP_EOL_STYLE);
+ keywords = svn_prop_get_value(props, SVN_PROP_KEYWORDS);
+ special = svn_prop_get_value(props, SVN_PROP_SPECIAL);
- if (eol_style)
- svn_subst_eol_style_from_value(&style, &eol, eol_style->data);
+ svn_subst_eol_style_from_value(&style, &eol, eol_style);
if (keywords)
{
@@ -158,7 +157,7 @@ svn_client__get_normalized_stream(svn_st
rev_str = apr_psprintf(scratch_pool, "%ld", changed_rev);
}
- SVN_ERR(svn_subst_build_keywords3(&kw, keywords->data, rev_str, url,
+ SVN_ERR(svn_subst_build_keywords3(&kw, keywords, rev_str, url,
repos_root_url, tm, author,
scratch_pool));
}
@@ -188,8 +187,8 @@ svn_client_cat3(apr_hash_t **returned_pr
{
svn_ra_session_t *ra_session;
svn_client__pathrev_t *loc;
- svn_string_t *eol_style;
- svn_string_t *keywords;
+ const char *eol_style;
+ const char *keywords;
apr_hash_t *props = NULL;
const char *repos_root_url, *repos_relpath;
svn_stream_t *output = out;
@@ -274,8 +273,8 @@ svn_client_cat3(apr_hash_t **returned_pr
}
}
- eol_style = svn_hash_gets(props, SVN_PROP_EOL_STYLE);
- keywords = svn_hash_gets(props, SVN_PROP_KEYWORDS);
+ eol_style = svn_prop_get_value(props, SVN_PROP_EOL_STYLE);
+ keywords = svn_prop_get_value(props, SVN_PROP_KEYWORDS);
if (eol_style || keywords)
{
@@ -284,31 +283,23 @@ svn_client_cat3(apr_hash_t **returned_pr
const char *eol_str;
apr_hash_t *kw;
- if (eol_style)
- svn_subst_eol_style_from_value(&eol, &eol_str, eol_style->data);
- else
- {
- eol = svn_subst_eol_style_none;
- eol_str = NULL;
- }
-
+ svn_subst_eol_style_from_value(&eol, &eol_str, eol_style);
if (keywords && expand_keywords)
{
- svn_string_t *cmt_rev, *cmt_date, *cmt_author;
+ const char *cmt_rev, *cmt_date, *cmt_author;
apr_time_t when = 0;
- cmt_rev = svn_hash_gets(props, SVN_PROP_ENTRY_COMMITTED_REV);
- cmt_date = svn_hash_gets(props, SVN_PROP_ENTRY_COMMITTED_DATE);
- cmt_author = svn_hash_gets(props, SVN_PROP_ENTRY_LAST_AUTHOR);
+ cmt_rev = svn_prop_get_value(props, SVN_PROP_ENTRY_COMMITTED_REV);
+ cmt_date = svn_prop_get_value(props, SVN_PROP_ENTRY_COMMITTED_DATE);
+ cmt_author = svn_prop_get_value(props, SVN_PROP_ENTRY_LAST_AUTHOR);
if (cmt_date)
- SVN_ERR(svn_time_from_cstring(&when, cmt_date->data,
scratch_pool));
+ SVN_ERR(svn_time_from_cstring(&when, cmt_date, scratch_pool));
- SVN_ERR(svn_subst_build_keywords3(&kw, keywords->data,
- cmt_rev->data, loc->url,
+ SVN_ERR(svn_subst_build_keywords3(&kw, keywords,
+ cmt_rev, loc->url,
repos_root_url, when,
- cmt_author ?
- cmt_author->data : NULL,
+ cmt_author,
scratch_pool));
}
else
Modified: subversion/branches/reparentless/subversion/libsvn_client/diff_local.c
==============================================================================
--- subversion/branches/reparentless/subversion/libsvn_client/diff_local.c
Wed Sep 23 08:35:39 2026 (r1938454)
+++ subversion/branches/reparentless/subversion/libsvn_client/diff_local.c
Wed Sep 23 08:38:47 2026 (r1938455)
@@ -305,8 +305,8 @@ translate_if_necessary(const char **loca
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- const svn_string_t *eol_style_val;
- const svn_string_t *keywords_val;
+ const char *eol_style_val;
+ const char *keywords_val;
svn_subst_eol_style_t eol_style;
const char *eol;
apr_hash_t *keywords;
@@ -316,19 +316,13 @@ translate_if_necessary(const char **loca
/* if (svn_hash_gets(props, SVN_PROP_SPECIAL))
### TODO: Implement */
- eol_style_val = svn_hash_gets(props, SVN_PROP_EOL_STYLE);
- keywords_val = svn_hash_gets(props, SVN_PROP_KEYWORDS);
+ eol_style_val = svn_prop_get_value(props, SVN_PROP_EOL_STYLE);
+ keywords_val = svn_prop_get_value(props, SVN_PROP_KEYWORDS);
- if (eol_style_val)
- svn_subst_eol_style_from_value(&eol_style, &eol, eol_style_val->data);
- else
- {
- eol = NULL;
- eol_style = svn_subst_eol_style_none;
- }
+ svn_subst_eol_style_from_value(&eol_style, &eol, eol_style_val);
if (keywords_val)
- SVN_ERR(svn_subst_build_keywords3(&keywords, keywords_val->data,
+ SVN_ERR(svn_subst_build_keywords3(&keywords, keywords_val,
APR_STRINGIFY(SVN_INVALID_REVNUM),
"", "", 0, "", scratch_pool));
else
Modified: subversion/branches/reparentless/subversion/libsvn_client/export.c
==============================================================================
--- subversion/branches/reparentless/subversion/libsvn_client/export.c Wed Sep
23 08:35:39 2026 (r1938454)
+++ subversion/branches/reparentless/subversion/libsvn_client/export.c Wed Sep
23 08:38:47 2026 (r1938455)
@@ -185,8 +185,7 @@ export_node(void *baton,
apr_hash_t *kw;
svn_subst_eol_style_t style;
apr_hash_t *props;
- svn_string_t *eol_style, *keywords, *executable, *special;
- const char *eol_style_val;
+ const char *eol_style, *keywords, *executable, *special;
const char *eol;
svn_boolean_t local_mod = FALSE;
apr_time_t tm;
@@ -342,17 +341,12 @@ export_node(void *baton,
local_mod = TRUE;
}
- special = svn_hash_gets(props, SVN_PROP_SPECIAL);
- eol_style = svn_hash_gets(props, SVN_PROP_EOL_STYLE);
- keywords = svn_hash_gets(props, SVN_PROP_KEYWORDS);
- executable = svn_hash_gets(props, SVN_PROP_EXECUTABLE);
+ special = svn_prop_get_value(props, SVN_PROP_SPECIAL);
+ eol_style = svn_prop_get_value(props, SVN_PROP_EOL_STYLE);
+ keywords = svn_prop_get_value(props, SVN_PROP_KEYWORDS);
+ executable = svn_prop_get_value(props, SVN_PROP_EXECUTABLE);
- if (eol_style)
- eol_style_val = eol_style->data;
- else
- eol_style_val = NULL;
-
- SVN_ERR(get_eol_style(&style, &eol, eol_style_val, eib->native_eol));
+ SVN_ERR(get_eol_style(&style, &eol, eol_style, eib->native_eol));
if (local_mod)
{
@@ -387,7 +381,7 @@ export_node(void *baton,
suffix = "";
}
- SVN_ERR(svn_subst_build_keywords3(&kw, keywords->data,
+ SVN_ERR(svn_subst_build_keywords3(&kw, keywords,
apr_psprintf(scratch_pool, "%ld%s",
changed_rev, suffix),
url, status->repos_root_url, tm,
Modified: subversion/branches/reparentless/subversion/libsvn_client/import.c
==============================================================================
--- subversion/branches/reparentless/subversion/libsvn_client/import.c Wed Sep
23 08:35:39 2026 (r1938454)
+++ subversion/branches/reparentless/subversion/libsvn_client/import.c Wed Sep
23 08:38:47 2026 (r1938455)
@@ -120,7 +120,7 @@ send_file_contents(svn_checksum_t **resu
apr_pool_t *pool)
{
svn_stream_t *contents;
- const svn_string_t *eol_style_val = NULL, *keywords_val = NULL;
+ const char *eol_style_val, *keywords_val;
svn_boolean_t special = FALSE;
svn_subst_eol_style_t eol_style;
const char *eol;
@@ -128,26 +128,15 @@ send_file_contents(svn_checksum_t **resu
open_txdelta_stream_baton_t baton = { 0 };
/* If there are properties, look for EOL-style and keywords ones. */
- if (properties)
- {
- eol_style_val = apr_hash_get(properties, SVN_PROP_EOL_STYLE,
- sizeof(SVN_PROP_EOL_STYLE) - 1);
- keywords_val = apr_hash_get(properties, SVN_PROP_KEYWORDS,
- sizeof(SVN_PROP_KEYWORDS) - 1);
- if (svn_hash_gets(properties, SVN_PROP_SPECIAL))
- special = TRUE;
- }
-
- if (eol_style_val)
- svn_subst_eol_style_from_value(&eol_style, &eol, eol_style_val->data);
- else
- {
- eol = NULL;
- eol_style = svn_subst_eol_style_none;
- }
+ eol_style_val = svn_prop_get_value(properties, SVN_PROP_EOL_STYLE);
+ keywords_val = svn_prop_get_value(properties, SVN_PROP_KEYWORDS);
+ if (svn_prop_get_value(properties, SVN_PROP_SPECIAL))
+ special = TRUE;
+
+ svn_subst_eol_style_from_value(&eol_style, &eol, eol_style_val);
if (keywords_val)
- SVN_ERR(svn_subst_build_keywords3(&keywords, keywords_val->data,
+ SVN_ERR(svn_subst_build_keywords3(&keywords, keywords_val,
APR_STRINGIFY(SVN_INVALID_REVNUM),
"", "", 0, "", pool));
else
@@ -174,7 +163,7 @@ send_file_contents(svn_checksum_t **resu
SVN_PROP_EOL_STYLE,
svn_dirent_local_style(local_abspath,
pool),
- eol_style_val->data);
+ eol_style_val);
/* We're importing, so translate files with 'native' eol-style to
* repository-normal form, not to this platform's native EOL. */
Modified: subversion/branches/reparentless/subversion/libsvn_client/patch.c
==============================================================================
--- subversion/branches/reparentless/subversion/libsvn_client/patch.c Wed Sep
23 08:35:39 2026 (r1938454)
+++ subversion/branches/reparentless/subversion/libsvn_client/patch.c Wed Sep
23 08:38:47 2026 (r1938455)
@@ -378,11 +378,11 @@ obtain_eol_and_keywords_for_file(apr_has
apr_pool_t *scratch_pool)
{
apr_hash_t *props;
- svn_string_t *keywords_val, *eol_style_val;
+ const char *keywords_val, *eol_style_val;
SVN_ERR(svn_wc_prop_list2(&props, wc_ctx, local_abspath,
scratch_pool, scratch_pool));
- keywords_val = svn_hash_gets(props, SVN_PROP_KEYWORDS);
+ keywords_val = svn_prop_get_value(props, SVN_PROP_KEYWORDS);
if (keywords_val)
{
svn_revnum_t changed_rev;
@@ -408,19 +408,14 @@ obtain_eol_and_keywords_for_file(apr_has
scratch_pool);
SVN_ERR(svn_subst_build_keywords3(keywords,
- keywords_val->data,
+ keywords_val,
rev_str, url, repos_root_url,
changed_date,
author, result_pool));
}
- eol_style_val = svn_hash_gets(props, SVN_PROP_EOL_STYLE);
- if (eol_style_val)
- {
- svn_subst_eol_style_from_value(eol_style,
- eol_str,
- eol_style_val->data);
- }
+ eol_style_val = svn_prop_get_value(props, SVN_PROP_EOL_STYLE);
+ svn_subst_eol_style_from_value(eol_style, eol_str, eol_style_val);
return SVN_NO_ERROR;
}
Modified: subversion/branches/reparentless/subversion/libsvn_ra_serf/get_lock.c
==============================================================================
--- subversion/branches/reparentless/subversion/libsvn_ra_serf/get_lock.c
Wed Sep 23 08:35:39 2026 (r1938454)
+++ subversion/branches/reparentless/subversion/libsvn_ra_serf/get_lock.c
Wed Sep 23 08:38:47 2026 (r1938455)
@@ -62,8 +62,6 @@ enum {
typedef struct lock_info_t {
apr_pool_t *pool;
- const char *path;
-
svn_lock_t *lock;
svn_boolean_t read_headers;
@@ -283,7 +281,6 @@ svn_ra_serf__get_lock(svn_ra_session_t *
lock_ctx = apr_pcalloc(scratch_pool, sizeof(*lock_ctx));
lock_ctx->pool = result_pool;
- lock_ctx->path = req_url;
lock_ctx->lock = svn_lock_create(result_pool);
lock_ctx->lock->path = apr_pstrdup(result_pool, path);
Modified: subversion/branches/reparentless/subversion/libsvn_repos/repos.c
==============================================================================
--- subversion/branches/reparentless/subversion/libsvn_repos/repos.c Wed Sep
23 08:35:39 2026 (r1938454)
+++ subversion/branches/reparentless/subversion/libsvn_repos/repos.c Wed Sep
23 08:38:47 2026 (r1938455)
@@ -1395,24 +1395,27 @@ fs_upgrade_notify(void *baton,
apr_pool_t *pool)
{
struct fs_upgrade_notify_baton_t *fs_baton = baton;
+ svn_repos_notify_t *notify;
- svn_repos_notify_t *notify = svn_repos_notify_create(
- svn_repos_notify_mutex_acquired, pool);
switch(action)
{
case svn_fs_upgrade_pack_revprops:
+ notify = svn_repos_notify_create(svn_repos_notify_pack_revprops, pool);
notify->shard = number;
- notify->action = svn_repos_notify_pack_revprops;
+ fs_baton->notify_func(fs_baton->notify_baton, notify, pool);
break;
case svn_fs_upgrade_cleanup_revprops:
+ notify = svn_repos_notify_create(svn_repos_notify_cleanup_revprops,
+ pool);
notify->shard = number;
- notify->action = svn_repos_notify_cleanup_revprops;
+ fs_baton->notify_func(fs_baton->notify_baton, notify, pool);
break;
case svn_fs_upgrade_format_bumped:
- notify->revision = number;
- notify->action = svn_repos_notify_format_bumped;
+ notify = svn_repos_notify_create(svn_repos_notify_format_bumped, pool);
+ notify->revision = (svn_revnum_t)number;
+ fs_baton->notify_func(fs_baton->notify_baton, notify, pool);
break;
default:
@@ -1420,8 +1423,6 @@ fs_upgrade_notify(void *baton,
SVN_ERR_MALFUNCTION();
}
- fs_baton->notify_func(fs_baton->notify_baton, notify, pool);
-
return SVN_NO_ERROR;
}
Modified: subversion/branches/reparentless/subversion/libsvn_subr/subst.c
==============================================================================
--- subversion/branches/reparentless/subversion/libsvn_subr/subst.c Wed Sep
23 08:35:39 2026 (r1938454)
+++ subversion/branches/reparentless/subversion/libsvn_subr/subst.c Wed Sep
23 08:38:47 2026 (r1938455)
@@ -1504,11 +1504,14 @@ stream_translated(svn_stream_t *stream,
hi; hi = apr_hash_next(hi))
{
const void *key;
+ apr_ssize_t klen;
void *val;
- apr_hash_this(hi, &key, NULL, &val);
- svn_hash_sets(copy, apr_pstrdup(result_pool, key),
- svn_string_dup(val, result_pool));
+ apr_hash_this(hi, &key, &klen, &val);
+ apr_hash_set(copy,
+ apr_pstrmemdup(result_pool, key, klen),
+ klen,
+ svn_string_dup(val, result_pool));
}
svn_pool_destroy(subpool);
Modified: subversion/branches/reparentless/subversion/libsvn_wc/deprecated.c
==============================================================================
--- subversion/branches/reparentless/subversion/libsvn_wc/deprecated.c Wed Sep
23 08:35:39 2026 (r1938454)
+++ subversion/branches/reparentless/subversion/libsvn_wc/deprecated.c Wed Sep
23 08:38:47 2026 (r1938455)
@@ -3669,8 +3669,8 @@ svn_wc_add_repos_file2(const char *dst_p
}
svn_subst_eol_style_from_value(&eol_style, &eol_str,
- svn_hash_gets(new_props,
- SVN_PROP_EOL_STYLE));
+ svn_prop_get_value(
+ new_props, SVN_PROP_EOL_STYLE));
if (svn_subst_translation_required(eol_style, eol_str, keywords,
FALSE, FALSE))