[prev in list] [next in list] [prev in thread] [next in thread]
List: subversion-commits
Subject: svn commit: r1614851 [3/5] - in /subversion/branches/remove-log-addressing: ./ build/ subversion/bin
From: ivan () apache ! org
Date: 2014-07-31 10:44:21
Message-ID: 20140731104429.039F92389111 () eris ! apache ! org
[Download RAW message or body]
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra/compat.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra/compat.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra/compat.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra/compat.c Thu Jul \
31 10:44:15 2014 @@ -922,9 +922,9 @@ svn_ra__get_inherited_props_walk(svn_ra_
hi;
hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
- apr_ssize_t klen = svn__apr_hash_index_klen(hi);
- svn_string_t *value = svn__apr_hash_index_val(hi);
+ const char *name = apr_hash_this_key(hi);
+ apr_ssize_t klen = apr_hash_this_key_len(hi);
+ svn_string_t *value = apr_hash_this_val(hi);
if (svn_property_kind2(name) == svn_prop_regular_kind)
{
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra/ra_loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra/ra_loader.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra/ra_loader.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra/ra_loader.c Thu \
Jul 31 10:44:15 2014 @@ -264,7 +264,7 @@ svn_error_t *svn_ra_open4(svn_ra_session
const struct ra_lib_defn *defn;
const svn_ra__vtable_t *vtable = NULL;
svn_config_t *servers = NULL;
- const char *server_group;
+ const char *server_group = NULL;
apr_uri_t repos_URI;
apr_status_t apr_err;
svn_error_t *err;
@@ -428,6 +428,10 @@ svn_error_t *svn_ra_open4(svn_ra_session
if (! store_auth_creds)
svn_auth_set_parameter(callbacks->auth_baton,
SVN_AUTH_PARAM_NO_AUTH_CACHE, "");
+
+ if (server_group)
+ svn_auth_set_parameter(callbacks->auth_baton,
+ SVN_AUTH_PARAM_SERVER_GROUP, server_group);
}
/* Find the library. */
@@ -1204,7 +1208,7 @@ svn_error_t *svn_ra_lock(svn_ra_session_
for (hi = apr_hash_first(pool, path_revs); hi; hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
+ const char *path = apr_hash_this_key(hi);
SVN_ERR_ASSERT(svn_relpath_is_canonical(path));
}
@@ -1229,7 +1233,7 @@ svn_error_t *svn_ra_unlock(svn_ra_sessio
for (hi = apr_hash_first(pool, path_tokens); hi; hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
+ const char *path = apr_hash_this_key(hi);
SVN_ERR_ASSERT(svn_relpath_is_canonical(path));
}
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_local/ra_plugin.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_local/ra_plugin.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_local/ra_plugin.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_local/ra_plugin.c \
Thu Jul 31 10:44:15 2014 @@ -416,8 +416,8 @@ deltify_etc(const svn_commit_info_t *com
for (hi = apr_hash_first(subpool, deb->lock_tokens); hi;
hi = apr_hash_next(hi))
{
- const void *relpath = svn__apr_hash_index_key(hi);
- const char *token = svn__apr_hash_index_val(hi);
+ const void *relpath = apr_hash_this_key(hi);
+ const char *token = apr_hash_this_val(hi);
const char *fspath;
fspath = svn_fspath__join(deb->fspath_base, relpath, subpool);
@@ -475,8 +475,8 @@ apply_lock_tokens(svn_fs_t *fs,
for (hi = apr_hash_first(scratch_pool, lock_tokens); hi;
hi = apr_hash_next(hi))
{
- const void *relpath = svn__apr_hash_index_key(hi);
- const char *token = svn__apr_hash_index_val(hi);
+ const void *relpath = apr_hash_this_key(hi);
+ const char *token = apr_hash_this_val(hi);
const char *fspath;
/* The path needs to live as long as ACCESS_CTX. */
@@ -1424,9 +1424,8 @@ svn_ra_local__lock(svn_ra_session_t *ses
for (hi = apr_hash_first(pool, path_revs); hi; hi = apr_hash_next(hi))
{
const char *abs_path = svn_fspath__join(sess->fs_path->data,
- svn__apr_hash_index_key(hi),
- pool);
- svn_revnum_t current_rev = *(svn_revnum_t *)svn__apr_hash_index_val(hi);
+ apr_hash_this_key(hi), pool);
+ svn_revnum_t current_rev = *(svn_revnum_t *)apr_hash_this_val(hi);
svn_fs_lock_target_t *target = svn_fs_lock_target_create(NULL,
current_rev,
pool);
@@ -1475,9 +1474,8 @@ svn_ra_local__unlock(svn_ra_session_t *s
for (hi = apr_hash_first(pool, path_tokens); hi; hi = apr_hash_next(hi))
{
const char *abs_path = svn_fspath__join(sess->fs_path->data,
- svn__apr_hash_index_key(hi),
- pool);
- const char *token = svn__apr_hash_index_val(hi);
+ apr_hash_this_key(hi), pool);
+ const char *token = apr_hash_this_val(hi);
svn_hash_sets(targets, abs_path, token);
}
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/commit.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/commit.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/commit.c Thu \
Jul 31 10:44:15 2014 @@ -1057,7 +1057,7 @@ setup_if_header_recursive(svn_boolean_t
hi;
hi = apr_hash_next(hi))
{
- const char *relpath = svn__apr_hash_index_key(hi);
+ const char *relpath = apr_hash_this_key(hi);
apr_uri_t uri;
if (!svn_relpath_skip_ancestor(rq_relpath, relpath))
@@ -1087,7 +1087,7 @@ setup_if_header_recursive(svn_boolean_t
svn_stringbuf_appendbyte(sb, '<');
svn_stringbuf_appendcstr(sb, apr_uri_unparse(iterpool, &uri, 0));
svn_stringbuf_appendcstr(sb, "> (<");
- svn_stringbuf_appendcstr(sb, svn__apr_hash_index_val(hi));
+ svn_stringbuf_appendcstr(sb, apr_hash_this_val(hi));
svn_stringbuf_appendcstr(sb, ">)");
}
@@ -1465,8 +1465,8 @@ open_root(void *edit_baton,
hi;
hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
- svn_string_t *value = svn__apr_hash_index_val(hi);
+ const char *name = apr_hash_this_key(hi);
+ svn_string_t *value = apr_hash_this_val(hi);
const char *ns;
if (strncmp(name, SVN_PROP_PREFIX, sizeof(SVN_PROP_PREFIX) - 1) == 0)
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/inherited_props.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/inherited_props.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/inherited_props.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/inherited_props.c \
Thu Jul 31 10:44:15 2014 @@ -240,7 +240,7 @@ keep_only_regular_props(apr_hash_t *prop
for (hi = apr_hash_first(scratch_pool, props); hi; hi = apr_hash_next(hi))
{
- const char *propname = svn__apr_hash_index_key(hi);
+ const char *propname = apr_hash_this_key(hi);
if (svn_property_kind2(propname) != svn_prop_regular_kind)
svn_hash_sets(props, propname, NULL);
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/lock.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/lock.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/lock.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/lock.c Thu \
Jul 31 10:44:15 2014 @@ -455,8 +455,8 @@ svn_ra_serf__lock(svn_ra_session_t *ra_s
lock_ctx = apr_pcalloc(scratch_pool, sizeof(*lock_ctx));
lock_ctx->pool = lock_pool;
- lock_ctx->path = svn__apr_hash_index_key(hi);
- lock_ctx->revision = *((svn_revnum_t*)svn__apr_hash_index_val(hi));
+ lock_ctx->path = apr_hash_this_key(hi);
+ lock_ctx->revision = *((svn_revnum_t*)apr_hash_this_val(hi));
lock_ctx->lock = svn_lock_create(lock_pool);
lock_ctx->lock->path = lock_ctx->path;
lock_ctx->lock->comment = comment;
@@ -564,8 +564,8 @@ svn_ra_serf__unlock(svn_ra_session_t *ra
svn_pool_clear(iterpool);
- path = svn__apr_hash_index_key(hi);
- token = svn__apr_hash_index_val(hi);
+ path = apr_hash_this_key(hi);
+ token = apr_hash_this_val(hi);
if (token && token[0])
continue;
@@ -625,8 +625,8 @@ svn_ra_serf__unlock(svn_ra_session_t *ra
lock_ctx->pool = lock_pool;
- lock_ctx->path = svn__apr_hash_index_key(hi);
- token = svn__apr_hash_index_val(hi);
+ lock_ctx->path = apr_hash_this_key(hi);
+ token = apr_hash_this_val(hi);
lock_ctx->force = force;
lock_ctx->token = apr_pstrcat(lock_pool, "<", token, ">", SVN_VA_NULL);
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/serf.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/serf.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/serf.c Thu \
Jul 31 10:44:15 2014 @@ -255,12 +255,8 @@ load_config(svn_ra_serf__session_t *sess
SERF_LOG_INFO));
#endif
- if (config)
- server_group = svn_config_find_group(config,
- session->session_url.hostname,
- SVN_CONFIG_SECTION_GROUPS, pool);
- else
- server_group = NULL;
+ server_group = svn_auth_get_parameter(session->wc_callbacks->auth_baton,
+ SVN_AUTH_PARAM_SERVER_GROUP);
if (server_group)
{
@@ -271,9 +267,6 @@ load_config(svn_ra_serf__session_t *sess
svn_config_get(config, &timeout_str, server_group,
SVN_CONFIG_OPTION_HTTP_TIMEOUT, timeout_str);
- svn_auth_set_parameter(session->wc_callbacks->auth_baton,
- SVN_AUTH_PARAM_SERVER_GROUP, server_group);
-
/* Load the group proxy server settings, overriding global
settings. We intentionally ignore 'http-proxy-exceptions'
here because, well, if this site was an exception, why is
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/update.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/update.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/update.c Thu \
Jul 31 10:44:15 2014 @@ -118,11 +118,11 @@ static const svn_ra_serf__xml_transition
FALSE, { "rev", "name", NULL }, TRUE },
{ OPEN_DIR, S_, "add-directory", ADD_DIR,
- FALSE, { "name", "?rev", "?copyfrom-path", "?copyfrom-rev", /*"?bc-url",*/
+ FALSE, { "name", "?copyfrom-path", "?copyfrom-rev", /*"?bc-url",*/
NULL }, TRUE },
{ ADD_DIR, S_, "add-directory", ADD_DIR,
- FALSE, { "name", "?rev", "?copyfrom-path", "?copyfrom-rev", /*"?bc-url",*/
+ FALSE, { "name", "?copyfrom-path", "?copyfrom-rev", /*"?bc-url",*/
NULL }, TRUE },
{ OPEN_DIR, S_, "open-file", OPEN_FILE,
@@ -132,12 +132,12 @@ static const svn_ra_serf__xml_transition
FALSE, { "rev", "name", NULL }, TRUE },
{ OPEN_DIR, S_, "add-file", ADD_FILE,
- FALSE, { "name", "?rev", "?copyfrom-path", "?copyfrom-rev",
- "?sha1-checksum", /*"?bc-url",*/ NULL }, TRUE },
+ FALSE, { "name", "?copyfrom-path", "?copyfrom-rev",
+ "?sha1-checksum", NULL }, TRUE },
{ ADD_DIR, S_, "add-file", ADD_FILE,
- FALSE, { "name", "?rev", "?copyfrom-path", "?copyfrom-rev",
- "?sha1-checksum", /*"?bc-url",*/ NULL }, TRUE },
+ FALSE, { "name", "?copyfrom-path", "?copyfrom-rev",
+ "?sha1-checksum", NULL }, TRUE },
{ OPEN_DIR, S_, "delete-entry", DELETE_ENTRY,
FALSE, { "?rev", "name", NULL }, TRUE },
@@ -849,7 +849,7 @@ maybe_close_dir(dir_baton_t *dir)
hi = apr_hash_next(hi))
{
SVN_ERR(ctx->editor->change_file_prop(dir->dir_baton,
- svn__apr_hash_index_key(hi),
+ apr_hash_this_key(hi),
NULL /* value */,
scratch_pool));
}
@@ -1013,7 +1013,7 @@ close_file(file_baton_t *file,
hi = apr_hash_next(hi))
{
SVN_ERR(ctx->editor->change_file_prop(file->file_baton,
- svn__apr_hash_index_key(hi),
+ apr_hash_this_key(hi),
NULL /* value */,
scratch_pool));
}
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_ra_svn/client.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_ra_svn/client.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_ra_svn/client.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_ra_svn/client.c Thu \
Jul 31 10:44:15 2014 @@ -1235,8 +1235,8 @@ parse_iproplist(apr_array_header_t **inh
hi;
hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
- svn_string_t *value = svn__apr_hash_index_val(hi);
+ const char *name = apr_hash_this_key(hi);
+ svn_string_t *value = apr_hash_this_val(hi);
svn_hash_sets(new_iprop->prop_hash,
apr_pstrdup(result_pool, name),
svn_string_dup(value, result_pool));
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/authz_pool.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/authz_pool.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/authz_pool.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/authz_pool.c \
Thu Jul 31 10:44:15 2014 @@ -34,8 +34,7 @@
#include "private/svn_subr_private.h"
#include "private/svn_repos_private.h"
#include "private/svn_string_private.h"
-
-#include "../libsvn_subr/config_impl.h"
+#include "private/svn_subr_private.h"
#include "repos.h"
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/delta.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/delta.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/delta.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/delta.c Thu Jul \
31 10:44:15 2014 @@ -875,9 +875,9 @@ delta_dirs(struct context *c,
from the target tree. */
for (hi = apr_hash_first(pool, t_entries); hi; hi = apr_hash_next(hi))
{
- const void *key = svn__apr_hash_index_key(hi);
- apr_ssize_t klen = svn__apr_hash_index_klen(hi);
- const svn_fs_dirent_t *t_entry = svn__apr_hash_index_val(hi);
+ const void *key = apr_hash_this_key(hi);
+ apr_ssize_t klen = apr_hash_this_key_len(hi);
+ const svn_fs_dirent_t *t_entry = apr_hash_this_val(hi);
const svn_fs_dirent_t *s_entry;
const char *t_fullpath;
const char *e_fullpath;
@@ -961,7 +961,7 @@ delta_dirs(struct context *c,
{
for (hi = apr_hash_first(pool, s_entries); hi; hi = apr_hash_next(hi))
{
- const svn_fs_dirent_t *s_entry = svn__apr_hash_index_val(hi);
+ const svn_fs_dirent_t *s_entry = apr_hash_this_val(hi);
const char *e_fullpath;
svn_node_kind_t src_kind;
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/fs-wrap.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/fs-wrap.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/fs-wrap.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/fs-wrap.c Thu \
Jul 31 10:44:15 2014 @@ -74,7 +74,7 @@ svn_repos_fs_commit_txn(const char **con
iterpool = svn_pool_create(pool);
for (hi = apr_hash_first(pool, props); hi; hi = apr_hash_next(hi))
{
- const char *key = svn__apr_hash_index_key(hi);
+ const char *key = apr_hash_this_key(hi);
svn_pool_clear(iterpool);
@@ -94,8 +94,8 @@ svn_repos_fs_commit_txn(const char **con
iterpool = svn_pool_create(pool);
for (hi = apr_hash_first(pool, props); hi; hi = apr_hash_next(hi))
{
- const char *key = svn__apr_hash_index_key(hi);
- svn_string_t *val = svn__apr_hash_index_val(hi);
+ const char *key = apr_hash_this_key(hi);
+ svn_string_t *val = apr_hash_this_val(hi);
svn_pool_clear(iterpool);
@@ -581,7 +581,7 @@ svn_repos_fs_lock_many(svn_repos_t *repo
{
const char *new_token;
svn_fs_lock_target_t *target;
- const char *path = svn__apr_hash_index_key(hi);
+ const char *path = apr_hash_this_key(hi);
svn_pool_clear(iterpool);
@@ -596,7 +596,7 @@ svn_repos_fs_lock_many(svn_repos_t *repo
continue;
}
- target = svn__apr_hash_index_val(hi);
+ target = apr_hash_this_val(hi);
if (*new_token)
svn_fs_lock_target_set_token(target, new_token);
svn_hash_sets(pre_targets, path, target);
@@ -738,8 +738,8 @@ svn_repos_fs_unlock_many(svn_repos_t *re
svn_fs_unlock_many() from happening for that path. */
for (hi = apr_hash_first(scratch_pool, targets); hi; hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
- const char *token = svn__apr_hash_index_val(hi);
+ const char *path = apr_hash_this_key(hi);
+ const char *token = apr_hash_this_val(hi);
svn_pool_clear(iterpool);
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/hooks.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/hooks.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/hooks.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/hooks.c Thu Jul \
31 10:44:15 2014 @@ -184,8 +184,8 @@ env_from_env_hash(apr_hash_t *env_hash,
for (hi = apr_hash_first(scratch_pool, env_hash); hi; hi = apr_hash_next(hi))
{
*envp = apr_psprintf(result_pool, "%s=%s",
- (const char *)svn__apr_hash_index_key(hi),
- (const char *)svn__apr_hash_index_val(hi));
+ (const char *)apr_hash_this_key(hi),
+ (const char *)apr_hash_this_val(hi));
envp++;
}
*envp = NULL;
@@ -519,8 +519,8 @@ lock_token_content(apr_file_t **handle,
for (hi = apr_hash_first(pool, lock_tokens); hi;
hi = apr_hash_next(hi))
{
- const char *token = svn__apr_hash_index_key(hi);
- const char *path = svn__apr_hash_index_val(hi);
+ const char *token = apr_hash_this_key(hi);
+ const char *path = apr_hash_this_val(hi);
svn_stringbuf_appendstr(lock_str,
svn_stringbuf_createf(pool, "%s|%s\n",
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/load-fs-vtable.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/load-fs-vtable.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/load-fs-vtable.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/load-fs-vtable.c \
Thu Jul 31 10:44:15 2014 @@ -209,8 +209,8 @@ prefix_mergeinfo_paths(svn_string_t **me
prefixed_mergeinfo = apr_hash_make(pool);
for (hi = apr_hash_first(pool, mergeinfo); hi; hi = apr_hash_next(hi))
{
- const char *merge_source = svn__apr_hash_index_key(hi);
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ const char *merge_source = apr_hash_this_key(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
const char *path;
merge_source = svn_relpath_canonicalize(merge_source, pool);
@@ -269,8 +269,8 @@ renumber_mergeinfo_revs(svn_string_t **f
for (hi = apr_hash_first(subpool, mergeinfo); hi; hi = apr_hash_next(hi))
{
- const char *merge_source = svn__apr_hash_index_key(hi);
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ const char *merge_source = apr_hash_this_key(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
struct parse_baton *pb = rb->pb;
int i;
@@ -831,7 +831,7 @@ remove_node_props(void *baton)
for (hi = apr_hash_first(nb->pool, proplist); hi; hi = apr_hash_next(hi))
{
- const char *key = svn__apr_hash_index_key(hi);
+ const char *key = apr_hash_this_key(hi);
SVN_ERR(change_node_prop(rb->txn_root, nb->path, key, NULL,
rb->pb->validate_props, nb->pool));
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/log.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/log.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/log.c Thu Jul \
31 10:44:15 2014 @@ -82,8 +82,8 @@ svn_repos_check_revision_access(svn_repo
subpool = svn_pool_create(pool);
for (hi = apr_hash_first(pool, changes); hi; hi = apr_hash_next(hi))
{
- const char *key = svn__apr_hash_index_key(hi);
- svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+ const char *key = apr_hash_this_key(hi);
+ svn_fs_path_change2_t *change = apr_hash_this_val(hi);
svn_boolean_t readable;
svn_pool_clear(subpool);
@@ -217,9 +217,9 @@ detect_changed(apr_hash_t **changed,
/* NOTE: Much of this loop is going to look quite similar to
svn_repos_check_revision_access(), but we have to do more things
here, so we'll live with the duplication. */
- const char *path = svn__apr_hash_index_key(hi);
- apr_ssize_t path_len = svn__apr_hash_index_klen(hi);
- svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+ const char *path = apr_hash_this_key(hi);
+ apr_ssize_t path_len = apr_hash_this_key_len(hi);
+ svn_fs_path_change2_t *change = apr_hash_this_val(hi);
char action;
svn_log_changed_path2_t *item;
@@ -614,7 +614,7 @@ fs_mergeinfo_changed(svn_mergeinfo_catal
hi;
hi = apr_hash_next(hi))
{
- svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+ svn_fs_path_change2_t *change = apr_hash_this_val(hi);
/* If there was a prop change and we are not positive that _no_
mergeinfo change happened, we must assume that it might have. */
@@ -646,7 +646,7 @@ fs_mergeinfo_changed(svn_mergeinfo_catal
hi = apr_hash_next(hi))
{
const char *changed_path;
- svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+ svn_fs_path_change2_t *change = apr_hash_this_val(hi);
const char *base_path = NULL;
svn_revnum_t base_rev = SVN_INVALID_REVNUM;
svn_fs_root_t *base_root = NULL;
@@ -663,7 +663,7 @@ fs_mergeinfo_changed(svn_mergeinfo_catal
continue;
/* Begin actual processing */
- changed_path = svn__apr_hash_index_key(hi);
+ changed_path = apr_hash_this_key(hi);
svn_pool_clear(iterpool);
switch (change->change_kind)
@@ -1022,9 +1022,9 @@ get_combined_mergeinfo_changes(svn_merge
for (hi = apr_hash_first(scratch_pool, added_mergeinfo_catalog);
hi; hi = apr_hash_next(hi))
{
- const char *changed_path = svn__apr_hash_index_key(hi);
- apr_ssize_t klen = svn__apr_hash_index_klen(hi);
- svn_mergeinfo_t added = svn__apr_hash_index_val(hi);
+ const char *changed_path = apr_hash_this_key(hi);
+ apr_ssize_t klen = apr_hash_this_key_len(hi);
+ svn_mergeinfo_t added = apr_hash_this_val(hi);
svn_mergeinfo_t deleted;
for (i = 0; i < paths->nelts; i++)
@@ -1252,7 +1252,7 @@ send_log(svn_revnum_t rev,
hi = apr_hash_next(hi))
{
svn_boolean_t path_is_in_history = FALSE;
- const char *changed_path = svn__apr_hash_index_key(hi);
+ const char *changed_path = apr_hash_this_key(hi);
apr_hash_index_t *hi2;
/* Look at each path on the log target's mergeinfo. */
@@ -1261,8 +1261,8 @@ send_log(svn_revnum_t rev,
hi2;
hi2 = apr_hash_next(hi2))
{
- const char *mergeinfo_path = svn__apr_hash_index_key(hi2);
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi2);
+ const char *mergeinfo_path = apr_hash_this_key(hi2);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi2);
/* Check whether CHANGED_PATH at revision REV is a child of
a (path, revision) tuple in LOG_TARGET_HISTORY_AS_MERGEINFO. */
@@ -1535,8 +1535,8 @@ combine_mergeinfo_path_lists(apr_array_h
int i;
struct rangelist_path *rp = apr_palloc(subpool, sizeof(*rp));
- rp->path = svn__apr_hash_index_key(hi);
- rp->rangelist = svn__apr_hash_index_val(hi);
+ rp->path = apr_hash_this_key(hi);
+ rp->rangelist = apr_hash_this_val(hi);
APR_ARRAY_PUSH(rangelist_paths, struct rangelist_path *) = rp;
/* We need to make local copies of the rangelist, since we will be
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/replay.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/replay.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/replay.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/replay.c Thu \
Jul 31 10:44:15 2014 @@ -184,8 +184,8 @@ add_subdir(svn_fs_root_t *source_root,
for (phi = apr_hash_first(pool, props); phi; phi = apr_hash_next(phi))
{
- const char *key = svn__apr_hash_index_key(phi);
- svn_string_t *val = svn__apr_hash_index_val(phi);
+ const char *key = apr_hash_this_key(phi);
+ svn_string_t *val = apr_hash_this_val(phi);
svn_pool_clear(subpool);
SVN_ERR(editor->change_dir_prop(*dir_baton, key, val, subpool));
@@ -200,7 +200,7 @@ add_subdir(svn_fs_root_t *source_root,
{
svn_fs_path_change2_t *change;
svn_boolean_t readable = TRUE;
- svn_fs_dirent_t *dent = svn__apr_hash_index_val(hi);
+ svn_fs_dirent_t *dent = apr_hash_this_val(hi);
const char *copyfrom_path = NULL;
svn_revnum_t copyfrom_rev = SVN_INVALID_REVNUM;
const char *new_edit_path;
@@ -303,8 +303,8 @@ add_subdir(svn_fs_root_t *source_root,
for (phi = apr_hash_first(pool, props); phi; phi = apr_hash_next(phi))
{
- const char *key = svn__apr_hash_index_key(phi);
- svn_string_t *val = svn__apr_hash_index_val(phi);
+ const char *key = apr_hash_this_key(phi);
+ svn_string_t *val = apr_hash_this_val(phi);
SVN_ERR(editor->change_file_prop(file_baton, key, val, subpool));
}
@@ -877,9 +877,9 @@ svn_repos_replay2(svn_fs_root_t *root,
changed_paths = apr_hash_make(pool);
for (hi = apr_hash_first(pool, fs_changes); hi; hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
- apr_ssize_t keylen = svn__apr_hash_index_klen(hi);
- svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+ const char *path = apr_hash_this_key(hi);
+ apr_ssize_t keylen = apr_hash_this_key_len(hi);
+ svn_fs_path_change2_t *change = apr_hash_this_val(hi);
svn_boolean_t allowed = TRUE;
if (authz_read_func)
@@ -1052,7 +1052,7 @@ add_subdir_ev2(svn_fs_root_t *source_roo
{
svn_fs_path_change2_t *change;
svn_boolean_t readable = TRUE;
- svn_fs_dirent_t *dent = svn__apr_hash_index_val(hi);
+ svn_fs_dirent_t *dent = apr_hash_this_val(hi);
const char *copyfrom_path = NULL;
svn_revnum_t copyfrom_rev = SVN_INVALID_REVNUM;
const char *child_relpath;
@@ -1503,9 +1503,9 @@ svn_repos__replay_ev2(svn_fs_root_t *roo
for (hi = apr_hash_first(scratch_pool, fs_changes); hi;
hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
- apr_ssize_t keylen = svn__apr_hash_index_klen(hi);
- svn_fs_path_change2_t *change = svn__apr_hash_index_val(hi);
+ const char *path = apr_hash_this_key(hi);
+ apr_ssize_t keylen = apr_hash_this_key_len(hi);
+ svn_fs_path_change2_t *change = apr_hash_this_val(hi);
svn_boolean_t allowed = TRUE;
if (authz_read_func)
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/reporter.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/reporter.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/reporter.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/reporter.c Thu \
Jul 31 10:44:15 2014 @@ -603,8 +603,8 @@ delta_proplists(report_baton_t *b, svn_r
/* So source, i.e. all new. Transmit all target props. */
for (hi = apr_hash_first(pool, t_props); hi; hi = apr_hash_next(hi))
{
- const char *key = svn__apr_hash_index_key(hi);
- svn_string_t *val = svn__apr_hash_index_val(hi);
+ const char *key = apr_hash_this_key(hi);
+ svn_string_t *val = apr_hash_this_val(hi);
SVN_ERR(change_fn(b, object, key, val, pool));
}
@@ -1246,7 +1246,7 @@ delta_dirs(report_baton_t *b, svn_revnum
hi;
hi = apr_hash_next(hi))
{
- const svn_fs_dirent_t *s_entry = svn__apr_hash_index_val(hi);
+ const svn_fs_dirent_t *s_entry = apr_hash_this_val(hi);
svn_pool_clear(iterpool);
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/repos.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/repos.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/repos.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/repos.c Thu Jul \
31 10:44:15 2014 @@ -2119,22 +2119,54 @@ lock_db_logs_file(svn_repos_t *repos,
}
+/* Baton used with fs_hotcopy_notify(), specifying the svn_repos layer
+ * notification parameters.
+ */
+struct fs_hotcopy_notify_baton_t
+{
+ svn_repos_notify_func_t notify_func;
+ void *notify_baton;
+};
+
+/* Implements svn_fs_hotcopy_notify_t as forwarding to a
+ * svn_repos_notify_func_t passed in a fs_hotcopy_notify_baton_t* BATON.
+ */
+static void
+fs_hotcopy_notify(void *baton,
+ svn_revnum_t start_revision,
+ svn_revnum_t end_revision,
+ apr_pool_t *pool)
+{
+ struct fs_hotcopy_notify_baton_t *fs_baton = baton;
+ svn_repos_notify_t *notify;
+
+ notify = svn_repos_notify_create(svn_repos_notify_hotcopy_rev_range, pool);
+ notify->start_revision = start_revision;
+ notify->end_revision = end_revision;
+
+ fs_baton->notify_func(fs_baton->notify_baton, notify, pool);
+}
+
/* Make a copy of a repository with hot backup of fs. */
svn_error_t *
-svn_repos_hotcopy2(const char *src_path,
+svn_repos_hotcopy3(const char *src_path,
const char *dst_path,
svn_boolean_t clean_logs,
svn_boolean_t incremental,
+ svn_repos_notify_func_t notify_func,
+ void *notify_baton,
svn_cancel_func_t cancel_func,
void *cancel_baton,
apr_pool_t *pool)
{
- svn_repos_t *src_repos;
- svn_repos_t *dst_repos;
+ svn_fs_hotcopy_notify_t fs_notify_func;
+ struct fs_hotcopy_notify_baton_t fs_notify_baton;
struct hotcopy_ctx_t hotcopy_context;
- svn_error_t *err;
const char *src_abspath;
const char *dst_abspath;
+ svn_repos_t *src_repos;
+ svn_repos_t *dst_repos;
+ svn_error_t *err;
SVN_ERR(svn_dirent_get_absolute(&src_abspath, src_path, pool));
SVN_ERR(svn_dirent_get_absolute(&dst_abspath, dst_path, pool));
@@ -2200,8 +2232,13 @@ svn_repos_hotcopy2(const char *src_path,
No one should be accessing it at the moment */
SVN_ERR(lock_repos(dst_repos, TRUE, FALSE, pool));
- SVN_ERR(svn_fs_hotcopy2(src_repos->db_path, dst_repos->db_path,
+ fs_notify_func = notify_func ? fs_hotcopy_notify : NULL;
+ fs_notify_baton.notify_func = notify_func;
+ fs_notify_baton.notify_baton = notify_baton;
+
+ SVN_ERR(svn_fs_hotcopy3(src_repos->db_path, dst_repos->db_path,
clean_logs, incremental,
+ fs_notify_func, &fs_notify_baton,
cancel_func, cancel_baton, pool));
/* Destination repository is ready. Stamp it with a format number. */
@@ -2211,6 +2248,20 @@ svn_repos_hotcopy2(const char *src_path,
}
svn_error_t *
+svn_repos_hotcopy2(const char *src_path,
+ const char *dst_path,
+ svn_boolean_t clean_logs,
+ svn_boolean_t incremental,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *pool)
+{
+ return svn_error_trace(svn_repos_hotcopy3(src_path, dst_path, clean_logs,
+ incremental, NULL, NULL,
+ cancel_func, cancel_baton, pool));
+}
+
+svn_error_t *
svn_repos_hotcopy(const char *src_path,
const char *dst_path,
svn_boolean_t clean_logs,
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_repos/rev_hunt.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_repos/rev_hunt.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_repos/rev_hunt.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_repos/rev_hunt.c Thu \
Jul 31 10:44:15 2014 @@ -1253,8 +1253,8 @@ find_merged_revisions(apr_array_header_t
for (hi = apr_hash_first(iterpool, old_pr->merged_mergeinfo); hi;
hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ const char *path = apr_hash_this_key(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
apr_pool_t *iterpool3;
int j;
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/cache-membuffer.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/cache-membuffer.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/cache-membuffer.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/cache-membuffer.c \
Thu Jul 31 10:44:15 2014 @@ -115,6 +115,21 @@
* on their hash key.
*/
+/* APR's read-write lock implementation on Windows is horribly inefficient.
+ * Even with very low contention a runtime overhead of 35% percent has been
+ * measured for 'svn-bench null-export' over ra_serf.
+ *
+ * Use a simple mutex on Windows. Because there is one mutex per segment,
+ * large machines should (and usually can) be configured with large caches
+ * such that read contention is kept low. This is basically the situation
+ * we head before 1.8.
+ */
+#ifdef WIN32
+# define USE_SIMPLE_MUTEX 1
+#else
+# define USE_SIMPLE_MUTEX 0
+#endif
+
/* For more efficient copy operations, let's align all data items properly.
* Must be a power of 2.
*/
@@ -581,11 +596,15 @@ struct svn_membuffer_t
* the cache's creator doesn't feel the cache needs to be
* thread-safe.
*/
+# if USE_SIMPLE_MUTEX
+ svn_mutex__t *lock;
+# else
apr_thread_rwlock_t *lock;
+# endif
/* If set, write access will wait until they get exclusive access.
* Otherwise, they will become no-ops if the segment is currently
- * read-locked.
+ * read-locked. Only used when LOCK is an r/w lock.
*/
svn_boolean_t allow_blocking_writes;
#endif
@@ -611,12 +630,16 @@ static svn_error_t *
read_lock_cache(svn_membuffer_t *cache)
{
#if APR_HAS_THREADS
+# if USE_SIMPLE_MUTEX
+ return svn_mutex__lock(cache->lock);
+# else
if (cache->lock)
{
apr_status_t status = apr_thread_rwlock_rdlock(cache->lock);
if (status)
return svn_error_wrap_apr(status, _("Can't lock cache mutex"));
}
+# endif
#endif
return SVN_NO_ERROR;
}
@@ -627,6 +650,12 @@ static svn_error_t *
write_lock_cache(svn_membuffer_t *cache, svn_boolean_t *success)
{
#if APR_HAS_THREADS
+# if USE_SIMPLE_MUTEX
+
+ return svn_mutex__lock(cache->lock);
+
+# else
+
if (cache->lock)
{
apr_status_t status;
@@ -648,6 +677,8 @@ write_lock_cache(svn_membuffer_t *cache,
return svn_error_wrap_apr(status,
_("Can't write-lock cache mutex"));
}
+
+# endif
#endif
return SVN_NO_ERROR;
}
@@ -659,10 +690,18 @@ static svn_error_t *
force_write_lock_cache(svn_membuffer_t *cache)
{
#if APR_HAS_THREADS
+# if USE_SIMPLE_MUTEX
+
+ return svn_mutex__lock(cache->lock);
+
+# else
+
apr_status_t status = apr_thread_rwlock_wrlock(cache->lock);
if (status)
return svn_error_wrap_apr(status,
_("Can't write-lock cache mutex"));
+
+# endif
#endif
return SVN_NO_ERROR;
}
@@ -674,6 +713,12 @@ static svn_error_t *
unlock_cache(svn_membuffer_t *cache, svn_error_t *err)
{
#if APR_HAS_THREADS
+# if USE_SIMPLE_MUTEX
+
+ return svn_mutex__unlock(cache->lock, SVN_NO_ERROR);
+
+# else
+
if (cache->lock)
{
apr_status_t status = apr_thread_rwlock_unlock(cache->lock);
@@ -683,6 +728,8 @@ unlock_cache(svn_membuffer_t *cache, svn
if (status)
return svn_error_wrap_apr(status, _("Can't unlock cache mutex"));
}
+
+# endif
#endif
return err;
}
@@ -1768,6 +1815,12 @@ svn_cache__membuffer_cache_create(svn_me
* the cache's creator doesn't feel the cache needs to be
* thread-safe.
*/
+# if USE_SIMPLE_MUTEX
+
+ SVN_ERR(svn_mutex__init(&c[seg].lock, thread_safe, FALSE, pool));
+
+# else
+
c[seg].lock = NULL;
if (thread_safe)
{
@@ -1777,12 +1830,17 @@ svn_cache__membuffer_cache_create(svn_me
return svn_error_wrap_apr(status, _("Can't create cache mutex"));
}
+# endif
+
/* Select the behavior of write operations.
*/
c[seg].allow_blocking_writes = allow_blocking_writes;
#endif
- SVN_ERR(svn_mutex__init(&c[seg].counter_mutex, thread_safe, FALSE,
+ /* Since a simple mutex already guarantees fully serialized access,
+ we need this mutex only when we use multple-reader-1-writer locks. */
+ SVN_ERR(svn_mutex__init(&c[seg].counter_mutex,
+ thread_safe && !USE_SIMPLE_MUTEX, FALSE,
pool));
}
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/config_auth.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/config_auth.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/config_auth.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/config_auth.c \
Thu Jul 31 10:44:15 2014 @@ -208,7 +208,7 @@ svn_config_walk_auth_data(const char *co
itempool = svn_pool_create(iterpool);
for (hi = apr_hash_first(iterpool, nodes); hi; hi = apr_hash_next(hi))
{
- svn_io_dirent2_t *dirent = svn__apr_hash_index_val(hi);
+ svn_io_dirent2_t *dirent = apr_hash_this_val(hi);
svn_stream_t *stream;
apr_hash_t *creds_hash;
const svn_string_t *realm;
@@ -222,7 +222,7 @@ svn_config_walk_auth_data(const char *co
svn_pool_clear(itempool);
- item_path = svn_dirent_join(dir_path, svn__apr_hash_index_key(hi),
+ item_path = svn_dirent_join(dir_path, apr_hash_this_key(hi),
itempool);
err = svn_stream_open_readonly(&stream, item_path,
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/debug.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/debug.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/debug.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/debug.c Thu Jul \
31 10:44:15 2014 @@ -145,8 +145,8 @@ svn_dbg__print_props(apr_hash_t *props,
for (hi = apr_hash_first(apr_hash_pool_get(props), props); hi;
hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
- svn_string_t *val = svn__apr_hash_index_val(hi);
+ const char *name = apr_hash_this_key(hi);
+ svn_string_t *val = apr_hash_this_val(hi);
svn_dbg__printf(" '%s' -> '%s'\n", name, val->data);
}
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/hash.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/hash.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/hash.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/hash.c Thu Jul \
31 10:44:15 2014 @@ -535,7 +535,7 @@ svn_hash_keys(apr_array_header_t **array
for (hi = apr_hash_first(pool, hash); hi; hi = apr_hash_next(hi))
{
- APR_ARRAY_PUSH(*array, const char *) = svn__apr_hash_index_key(hi);
+ APR_ARRAY_PUSH(*array, const char *) = apr_hash_this_key(hi);
}
return SVN_NO_ERROR;
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/io.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/io.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/io.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/io.c Thu Jul 31 \
10:44:15 2014 @@ -2238,6 +2238,35 @@ svn_io_file_lock2(const char *lock_file,
return svn_io_lock_open_file(lockfile_handle, exclusive, nonblocking, pool);
}
+svn_error_t *
+svn_io__file_lock_autocreate(const char *lock_file,
+ apr_pool_t *pool)
+{
+ svn_error_t *err
+ = svn_io_file_lock2(lock_file, TRUE, FALSE, pool);
+ if (err && APR_STATUS_IS_ENOENT(err->apr_err))
+ {
+ /* No lock file? No big deal; these are just empty files anyway.
+ Create it and try again. */
+ svn_error_clear(err);
+
+ /* This file creation is racy.
+ We don't care as long as file gets created at all. */
+ err = svn_io_file_create_empty(lock_file, pool);
+ if (err && APR_STATUS_IS_EEXIST(err->apr_err))
+ {
+ svn_error_clear(err);
+ err = NULL;
+ }
+
+ /* Finally, lock the file - if it exists */
+ if (!err)
+ err = svn_io_file_lock2(lock_file, TRUE, FALSE, pool);
+ }
+
+ return svn_error_trace(err);
+}
+
/* Data consistency/coherency operations. */
@@ -2529,8 +2558,8 @@ svn_io_remove_dir2(const char *path, svn
for (hi = apr_hash_first(subpool, dirents); hi; hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
- const svn_io_dirent2_t *dirent = svn__apr_hash_index_val(hi);
+ const char *name = apr_hash_this_key(hi);
+ const svn_io_dirent2_t *dirent = apr_hash_this_val(hi);
const char *fullpath;
fullpath = svn_dirent_join(path, name, subpool);
@@ -5007,8 +5036,25 @@ svn_io_open_unique_file3(apr_file_t **fi
* case, but only if the umask allows it. */
if (!using_system_temp_dir)
{
+ svn_error_t *err;
+
SVN_ERR(merge_default_file_perms(tempfile, &perms, scratch_pool));
- SVN_ERR(file_perms_set2(tempfile, perms, scratch_pool));
+ err = file_perms_set2(tempfile, perms, scratch_pool);
+ if (err)
+ {
+ if (APR_STATUS_IS_INCOMPLETE(err->apr_err) ||
+ APR_STATUS_IS_ENOTIMPL(err->apr_err))
+ svn_error_clear(err);
+ else
+ {
+ const char *message;
+ message = apr_psprintf(scratch_pool,
+ _("Can't set permissions on '%s'"),
+ svn_dirent_local_style(tempname,
+ scratch_pool));
+ return svn_error_quick_wrap(err, message);
+ }
+ }
}
#endif
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/iter.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/iter.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/iter.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/iter.c Thu Jul \
31 10:44:15 2014 @@ -184,45 +184,28 @@ svn_iter__break(void)
return &internal_break_error;
}
-/* Note about the type casts: apr_hash_this() does not expect a const hash
- * index pointer even though it does not modify the hash index. In
- * Subversion we're trying to be const-correct, so these functions all take
- * a const hash index and we cast away the const when passing it down to
- * APR. (A compiler may warn about casting away 'const', but at least this
- * cast is explicit and gathered in one place.) */
-
-const void *svn__apr_hash_index_key(const apr_hash_index_t *hi)
+#if !APR_VERSION_AT_LEAST(1, 5, 0)
+const void *apr_hash_this_key(apr_hash_index_t *hi)
{
-#if APR_VERSION_AT_LEAST(1, 5, 0)
- return apr_hash_this_key((apr_hash_index_t *)hi);
-#else
const void *key;
apr_hash_this((apr_hash_index_t *)hi, &key, NULL, NULL);
return key;
-#endif
}
-apr_ssize_t svn__apr_hash_index_klen(const apr_hash_index_t *hi)
+apr_ssize_t apr_hash_this_key_len(apr_hash_index_t *hi)
{
-#if APR_VERSION_AT_LEAST(1, 5, 0)
- return apr_hash_this_key_len((apr_hash_index_t *)hi);
-#else
apr_ssize_t klen;
apr_hash_this((apr_hash_index_t *)hi, NULL, &klen, NULL);
return klen;
-#endif
}
-void *svn__apr_hash_index_val(const apr_hash_index_t *hi)
+void *apr_hash_this_val(apr_hash_index_t *hi)
{
-#if APR_VERSION_AT_LEAST(1, 5, 0)
- return apr_hash_this_val((apr_hash_index_t *)hi);
-#else
void *val;
apr_hash_this((apr_hash_index_t *)hi, NULL, NULL, &val);
return val;
-#endif
}
+#endif
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/log.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/log.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/log.c Thu Jul 31 \
10:44:15 2014 @@ -316,7 +316,7 @@ svn_log__lock(apr_hash_t *targets,
for (hi = apr_hash_first(pool, targets); hi; hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
+ const char *path = apr_hash_this_key(hi);
svn_pool_clear(iterpool);
if (space_separated_paths->len)
svn_stringbuf_appendcstr(space_separated_paths, " ");
@@ -339,7 +339,7 @@ svn_log__unlock(apr_hash_t *targets,
for (hi = apr_hash_first(pool, targets); hi; hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
+ const char *path = apr_hash_this_key(hi);
svn_pool_clear(iterpool);
if (space_separated_paths->len)
svn_stringbuf_appendcstr(space_separated_paths, " ");
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/mergeinfo.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/mergeinfo.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/mergeinfo.c Thu \
Jul 31 10:44:15 2014 @@ -1266,7 +1266,7 @@ svn_mergeinfo__set_inheritance(svn_merge
hi;
hi = apr_hash_next(hi))
{
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
if (rangelist)
svn_rangelist__set_inheritance(rangelist, inheritable);
@@ -1870,8 +1870,8 @@ svn_mergeinfo_intersect2(svn_mergeinfo_t
for (hi = apr_hash_first(scratch_pool, mergeinfo1);
hi; hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
- svn_rangelist_t *rangelist1 = svn__apr_hash_index_val(hi);
+ const char *path = apr_hash_this_key(hi);
+ svn_rangelist_t *rangelist1 = apr_hash_this_val(hi);
svn_rangelist_t *rangelist2;
svn_pool_clear(iterpool);
@@ -1992,7 +1992,7 @@ svn_mergeinfo_sort(svn_mergeinfo_t input
for (hi = apr_hash_first(pool, input); hi; hi = apr_hash_next(hi))
{
- apr_array_header_t *rl = svn__apr_hash_index_val(hi);
+ apr_array_header_t *rl = apr_hash_this_val(hi);
svn_sort__array(rl, svn_sort_compare_ranges);
}
@@ -2010,8 +2010,8 @@ svn_mergeinfo_catalog_dup(svn_mergeinfo_
hi;
hi = apr_hash_next(hi))
{
- const char *key = svn__apr_hash_index_key(hi);
- svn_mergeinfo_t val = svn__apr_hash_index_val(hi);
+ const char *key = apr_hash_this_key(hi);
+ svn_mergeinfo_t val = apr_hash_this_val(hi);
svn_hash_sets(new_mergeinfo_catalog, apr_pstrdup(pool, key),
svn_mergeinfo_dup(val, pool));
@@ -2028,9 +2028,9 @@ svn_mergeinfo_dup(svn_mergeinfo_t mergei
for (hi = apr_hash_first(pool, mergeinfo); hi; hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
- apr_ssize_t pathlen = svn__apr_hash_index_klen(hi);
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ const char *path = apr_hash_this_key(hi);
+ apr_ssize_t pathlen = apr_hash_this_key_len(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
apr_hash_set(new_mergeinfo, apr_pstrmemdup(pool, path, pathlen), pathlen,
svn_rangelist_dup(rangelist, pool));
@@ -2056,9 +2056,9 @@ svn_mergeinfo_inheritable2(svn_mergeinfo
hi;
hi = apr_hash_next(hi))
{
- const char *key = svn__apr_hash_index_key(hi);
- apr_ssize_t keylen = svn__apr_hash_index_klen(hi);
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ const char *key = apr_hash_this_key(hi);
+ apr_ssize_t keylen = apr_hash_this_key_len(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
svn_rangelist_t *inheritable_rangelist;
if (!path || svn_path_compare_paths(path, key) == 0)
@@ -2141,8 +2141,8 @@ svn_mergeinfo__remove_empty_rangelists(s
for (hi = apr_hash_first(scratch_pool, mergeinfo); hi;
hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ const char *path = apr_hash_this_key(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
if (rangelist->nelts == 0)
{
@@ -2168,8 +2168,8 @@ svn_mergeinfo__remove_prefix_from_catalo
for (hi = apr_hash_first(pool, in_catalog); hi; hi = apr_hash_next(hi))
{
- const char *original_path = svn__apr_hash_index_key(hi);
- svn_mergeinfo_t value = svn__apr_hash_index_val(hi);
+ const char *original_path = apr_hash_this_key(hi);
+ svn_mergeinfo_t value = apr_hash_this_val(hi);
const char *new_path;
new_path = svn_fspath__skip_ancestor(prefix_path, original_path);
@@ -2196,8 +2196,8 @@ svn_mergeinfo__add_prefix_to_catalog(svn
hi;
hi = apr_hash_next(hi))
{
- const char *original_path = svn__apr_hash_index_key(hi);
- svn_mergeinfo_t value = svn__apr_hash_index_val(hi);
+ const char *original_path = apr_hash_this_key(hi);
+ svn_mergeinfo_t value = apr_hash_this_val(hi);
if (original_path[0] == '/')
original_path++;
@@ -2227,8 +2227,8 @@ svn_mergeinfo__add_suffix_to_mergeinfo(s
hi;
hi = apr_hash_next(hi))
{
- const char *fspath = svn__apr_hash_index_key(hi);
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ const char *fspath = apr_hash_this_key(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
svn_hash_sets(*out_mergeinfo,
svn_fspath__join(fspath, suffix_relpath, result_pool),
@@ -2370,7 +2370,7 @@ svn_mergeinfo__get_range_endpoints(svn_r
for (hi = apr_hash_first(pool, mergeinfo); hi; hi = apr_hash_next(hi))
{
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
if (rangelist->nelts)
{
@@ -2407,8 +2407,8 @@ svn_mergeinfo__filter_catalog_by_ranges(
hi;
hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
- svn_mergeinfo_t mergeinfo = svn__apr_hash_index_val(hi);
+ const char *path = apr_hash_this_key(hi);
+ svn_mergeinfo_t mergeinfo = apr_hash_this_val(hi);
svn_mergeinfo_t filtered_mergeinfo;
SVN_ERR(svn_mergeinfo__filter_mergeinfo_by_ranges(&filtered_mergeinfo,
@@ -2452,8 +2452,8 @@ svn_mergeinfo__filter_mergeinfo_by_range
hi;
hi = apr_hash_next(hi))
{
- const char *path = svn__apr_hash_index_key(hi);
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ const char *path = apr_hash_this_key(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
if (rangelist->nelts)
{
@@ -2489,8 +2489,8 @@ svn_mergeinfo__adjust_mergeinfo_rangelis
hi = apr_hash_next(hi))
{
int i;
- const char *path = svn__apr_hash_index_key(hi);
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ const char *path = apr_hash_this_key(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
svn_rangelist_t *adjusted_rangelist =
apr_array_make(result_pool, rangelist->nelts,
sizeof(svn_merge_range_t *));
@@ -2529,7 +2529,7 @@ svn_mergeinfo__is_noninheritable(svn_mer
hi;
hi = apr_hash_next(hi))
{
- svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+ svn_rangelist_t *rangelist = apr_hash_this_val(hi);
int i;
for (i = 0; i < rangelist->nelts; i++)
@@ -2626,7 +2626,7 @@ svn_rangelist__merge_many(svn_rangelist_
hi;
hi = apr_hash_next(hi))
{
- svn_rangelist_t *subtree_rangelist = svn__apr_hash_index_val(hi);
+ svn_rangelist_t *subtree_rangelist = apr_hash_this_val(hi);
svn_pool_clear(iterpool);
SVN_ERR(svn_rangelist_merge2(merged_rangelist, subtree_rangelist,
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/named_atomic.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/named_atomic.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/named_atomic.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/named_atomic.c \
Thu Jul 31 10:44:15 2014 @@ -32,6 +32,7 @@
#include "svn_pools.h"
#include "svn_dirent_uri.h"
#include "svn_io.h"
+#include "private/svn_io_private.h"
/* Implementation aspects.
*
@@ -197,8 +198,8 @@ struct shared_data_t
*/
struct mutex_t
{
- /* Inter-process sync. is handled by through lock file. */
- apr_file_t *lock_file;
+ /* Inter-process sync. is handled by through a lock file. */
+ const char *lock_name;
/* Pool to be used with lock / unlock functions */
apr_pool_t *pool;
@@ -274,15 +275,10 @@ init_thread_mutex(void *baton, apr_pool_
static svn_error_t *
lock(struct mutex_t *mutex)
{
- svn_error_t *err;
-
- /* Get lock on the filehandle. */
- SVN_ERR(svn_mutex__lock(thread_mutex));
- err = svn_io_lock_open_file(mutex->lock_file, TRUE, FALSE, mutex->pool);
-
- return err
- ? svn_mutex__unlock(thread_mutex, err)
- : err;
+ SVN_MUTEX__WITH_LOCK(thread_mutex,
+ svn_io__file_lock_autocreate(mutex->lock_name,
+ mutex->pool));
+ return SVN_NO_ERROR;
}
/* Utility that releases the lock previously acquired via lock(). If the
@@ -292,36 +288,9 @@ lock(struct mutex_t *mutex)
static svn_error_t *
unlock(struct mutex_t *mutex, svn_error_t * outer_err)
{
- svn_error_t *unlock_err
- = svn_io_unlock_open_file(mutex->lock_file, mutex->pool);
- return svn_mutex__unlock(thread_mutex,
- svn_error_compose_create(outer_err,
- unlock_err));
-}
-
-#if APR_HAS_MMAP
-/* The last user to close a particular namespace should also remove the
- * lock file. Failure to do so, however, does not affect further uses
- * of the same namespace.
- */
-static apr_status_t
-delete_lock_file(void *arg)
-{
- struct mutex_t *mutex = arg;
- const char *lock_name = NULL;
-
- /* locks have already been cleaned up. Simply close the file */
- apr_status_t status = apr_file_close(mutex->lock_file);
-
- /* Remove the file from disk. This will fail if there ares still other
- * users of this lock file, i.e. namespace. */
- apr_file_name_get(&lock_name, mutex->lock_file);
- if (lock_name)
- apr_file_remove(lock_name, mutex->pool);
-
- return status;
+ svn_pool_clear(mutex->pool);
+ return svn_mutex__unlock(thread_mutex, outer_err);
}
-#endif /* APR_HAS_MMAP */
/* Validate the ATOMIC parameter, i.e it's address. Correct code will
* never need this but if someone should accidentally to use a NULL or
@@ -411,29 +380,18 @@ svn_atomic_namespace__create(svn_atomic_
*/
svn_atomic_namespace__t *new_ns = apr_pcalloc(result_pool, sizeof(**ns));
- /* construct the names of the system objects that we need
+ /* construct the name of the system objects that we need
*/
shm_name = apr_pstrcat(subpool, name, SHM_NAME_SUFFIX, SVN_VA_NULL);
- lock_name = apr_pstrcat(subpool, name, MUTEX_NAME_SUFFIX, SVN_VA_NULL);
+ lock_name = apr_pstrcat(result_pool, name, MUTEX_NAME_SUFFIX, SVN_VA_NULL);
/* initialize the lock objects
*/
SVN_ERR(svn_atomic__init_once(&mutex_initialized, init_thread_mutex, NULL,
result_pool));
- new_ns->mutex.pool = result_pool;
- SVN_ERR(svn_io_file_open(&new_ns->mutex.lock_file, lock_name,
- APR_READ | APR_WRITE | APR_CREATE,
- APR_OS_DEFAULT,
- result_pool));
-
- /* Make sure the last user of our lock file will actually remove it.
- * Please note that only the last file handle being closed will actually
- * remove the underlying file (see docstring for apr_file_remove).
- */
- apr_pool_cleanup_register(result_pool, &new_ns->mutex,
- delete_lock_file,
- apr_pool_cleanup_null);
+ new_ns->mutex.pool = svn_pool_create(result_pool);
+ new_ns->mutex.lock_name = lock_name;
/* Prevent concurrent initialization.
*/
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/object_pool.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/object_pool.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/object_pool.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/object_pool.c \
Thu Jul 31 10:44:15 2014 @@ -121,7 +121,7 @@ remove_unused_objects(svn_object_pool__t
hi != NULL;
hi = apr_hash_next(hi))
{
- object_ref_t *object_ref = svn__apr_hash_index_val(hi);
+ object_ref_t *object_ref = apr_hash_this_val(hi);
/* note that we won't hand out new references while access
to the hash is serialized */
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_subr/string.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_subr/string.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_subr/string.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_subr/string.c Thu Jul \
31 10:44:15 2014 @@ -1465,4 +1465,17 @@ svn_cstring__reverse_match_length(const
return max_len;
}
+const char *
+svn_cstring_skip_prefix(const char *str, const char *prefix)
+{
+ apr_size_t len = strlen(prefix);
+ if (strncmp(str, prefix, len) == 0)
+ {
+ return str + len;
+ }
+ else
+ {
+ return NULL;
+ }
+}
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_crawler.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_crawler.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_crawler.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_crawler.c Thu \
Jul 31 10:44:15 2014 @@ -293,11 +293,11 @@ report_revisions_and_depths(svn_wc__db_t
hi != NULL;
hi = apr_hash_next(hi))
{
- const char *child = svn__apr_hash_index_key(hi);
+ const char *child = apr_hash_this_key(hi);
const char *this_report_relpath;
const char *this_abspath;
svn_boolean_t this_switched = FALSE;
- struct svn_wc__db_base_info_t *ths = svn__apr_hash_index_val(hi);
+ struct svn_wc__db_base_info_t *ths = apr_hash_this_val(hi);
if (cancel_func)
SVN_ERR(cancel_func(cancel_baton));
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_ops.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_ops.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_ops.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/adm_ops.c Thu Jul \
31 10:44:15 2014 @@ -417,7 +417,7 @@ have_recursive_parent(apr_hash_t *queue,
for (hi = apr_hash_first(scratch_pool, queue); hi; hi = apr_hash_next(hi))
{
- const committed_queue_item_t *qi = svn__apr_hash_index_val(hi);
+ const committed_queue_item_t *qi = apr_hash_this_val(hi);
if (qi == item)
continue;
@@ -509,7 +509,7 @@ svn_wc_process_committed_queue2(svn_wc_c
hi;
hi = apr_hash_next(hi))
{
- const char *wcroot_abspath = svn__apr_hash_index_key(hi);
+ const char *wcroot_abspath = apr_hash_this_key(hi);
svn_pool_clear(iterpool);
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c Thu \
Jul 31 10:44:15 2014 @@ -477,8 +477,7 @@ svn_wc__conflict_skel_add_prop_conflict(
hi;
hi = apr_hash_next(hi))
{
- svn_skel__prepend_str(apr_pstrdup(result_pool,
- svn__apr_hash_index_key(hi)),
+ svn_skel__prepend_str(apr_pstrdup(result_pool, apr_hash_this_key(hi)),
conflict_names,
result_pool);
}
@@ -1211,7 +1210,7 @@ svn_wc__conflict_create_markers(svn_skel
hi;
hi = apr_hash_next(hi))
{
- const char *propname = svn__apr_hash_index_key(hi);
+ const char *propname = apr_hash_this_key(hi);
SVN_ERR(prop_conflict_skel_add(
prop_data, propname,
@@ -1994,7 +1993,7 @@ svn_wc__conflict_invoke_resolver(svn_wc_
hi;
hi = apr_hash_next(hi))
{
- const char *propname = svn__apr_hash_index_key(hi);
+ const char *propname = apr_hash_this_key(hi);
svn_boolean_t conflict_remains = TRUE;
svn_pool_clear(iterpool);
@@ -2163,7 +2162,7 @@ read_prop_conflict_descs(apr_array_heade
hi;
hi = apr_hash_next(hi))
{
- const char *propname = svn__apr_hash_index_key(hi);
+ const char *propname = apr_hash_this_key(hi);
svn_string_t *old_value;
svn_string_t *my_value;
svn_string_t *their_value;
@@ -2667,7 +2666,7 @@ resolve_prop_conflict_on_node(svn_boolea
hi;
hi = apr_hash_next(hi))
{
- const char *propname = svn__apr_hash_index_key(hi);
+ const char *propname = apr_hash_this_key(hi);
svn_string_t *new_value = NULL;
new_value = svn_hash_gets(resolve_from, propname);
@@ -3170,7 +3169,7 @@ svn_wc__resolve_conflicts(svn_wc_context
hi && !err;
hi = apr_hash_next(hi))
{
- tc_abspath = svn__apr_hash_index_key(hi);
+ tc_abspath = apr_hash_this_key(hi);
svn_pool_clear(iterpool);
svn_hash_sets(cswb.resolve_later, tc_abspath, NULL);
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c Thu Jul 31 \
10:44:15 2014 @@ -367,8 +367,8 @@ copy_versioned_dir(svn_wc__db_t *db,
if (cancel_func)
SVN_ERR(cancel_func(cancel_baton));
- child_name = svn__apr_hash_index_key(hi);
- info = svn__apr_hash_index_val(hi);
+ child_name = apr_hash_this_key(hi);
+ info = apr_hash_this_val(hi);
child_src_abspath = svn_dirent_join(src_abspath, child_name, iterpool);
child_dst_abspath = svn_dirent_join(dst_abspath, child_name, iterpool);
@@ -468,7 +468,7 @@ copy_versioned_dir(svn_wc__db_t *db,
for (hi = apr_hash_first(scratch_pool, disk_children); hi;
hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
+ const char *name = apr_hash_this_key(hi);
const char *unver_src_abspath, *unver_dst_abspath;
svn_skel_t *work_item;
@@ -950,8 +950,8 @@ remove_all_conflict_markers(svn_wc__db_t
hi;
hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
- struct svn_wc__db_info_t *info = svn__apr_hash_index_val(hi);
+ const char *name = apr_hash_this_key(hi);
+ struct svn_wc__db_info_t *info = apr_hash_this_val(hi);
if (info->conflicted)
{
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/deprecated.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/deprecated.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/deprecated.c Thu \
Jul 31 10:44:15 2014 @@ -127,7 +127,7 @@ gather_traversal_info(svn_wc_context_t *
hi;
hi = apr_hash_next(hi))
{
- const char *node_abspath = svn__apr_hash_index_key(hi);
+ const char *node_abspath = apr_hash_this_key(hi);
const char *relpath;
relpath = svn_dirent_join(path,
@@ -137,11 +137,11 @@ gather_traversal_info(svn_wc_context_t *
if (gather_as_old)
svn_hash_sets(traversal_info->externals_old, relpath,
- svn__apr_hash_index_val(hi));
+ apr_hash_this_val(hi));
if (gather_as_new)
svn_hash_sets(traversal_info->externals_new, relpath,
- svn__apr_hash_index_val(hi));
+ apr_hash_this_val(hi));
svn_hash_sets(traversal_info->depths, relpath,
svn_hash_gets(ambient_depths, node_abspath));
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c Thu Jul \
31 10:44:15 2014 @@ -346,7 +346,7 @@ write_tree_conflicts(const char **confli
{
svn_skel_t *c_skel;
- SVN_ERR(svn_wc__serialize_conflict(&c_skel, svn__apr_hash_index_val(hi),
+ SVN_ERR(svn_wc__serialize_conflict(&c_skel, apr_hash_this_val(hi),
pool, pool));
svn_skel__prepend(c_skel, skel);
}
@@ -1342,7 +1342,7 @@ prune_deleted(apr_hash_t **entries_prune
svn_boolean_t hidden;
SVN_ERR(svn_wc__entry_is_hidden(&hidden,
- svn__apr_hash_index_val(hi)));
+ apr_hash_this_val(hi)));
if (hidden)
break;
}
@@ -1360,8 +1360,8 @@ prune_deleted(apr_hash_t **entries_prune
hi;
hi = apr_hash_next(hi))
{
- const void *key = svn__apr_hash_index_key(hi);
- const svn_wc_entry_t *entry = svn__apr_hash_index_val(hi);
+ const void *key = apr_hash_this_key(hi);
+ const svn_wc_entry_t *entry = apr_hash_this_val(hi);
svn_boolean_t hidden;
SVN_ERR(svn_wc__entry_is_hidden(&hidden, entry));
@@ -2357,9 +2357,9 @@ write_actual_only_entries(apr_hash_t *tr
actual_node = MAYBE_ALLOC(actual_node, scratch_pool);
actual_node->wc_id = wc_id;
- actual_node->local_relpath = svn__apr_hash_index_key(hi);
+ actual_node->local_relpath = apr_hash_this_key(hi);
actual_node->parent_relpath = parent_relpath;
- actual_node->tree_conflict_data = svn__apr_hash_index_val(hi);
+ actual_node->tree_conflict_data = apr_hash_this_val(hi);
SVN_ERR(insert_actual_node(sdb, db, wri_abspath, actual_node,
scratch_pool));
@@ -2417,8 +2417,8 @@ svn_wc__write_upgraded_entries(void **di
for (hi = apr_hash_first(scratch_pool, entries); hi;
hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
- const svn_wc_entry_t *this_entry = svn__apr_hash_index_val(hi);
+ const char *name = apr_hash_this_key(hi);
+ const svn_wc_entry_t *this_entry = apr_hash_this_val(hi);
const char *child_abspath, *child_relpath;
svn_wc__text_base_info_t *text_base_info
= svn_hash_gets(text_bases_info, name);
@@ -2572,8 +2572,8 @@ walker_helper(const char *dirpath,
/* Loop over each of the other entries. */
for (hi = apr_hash_first(pool, entries); hi; hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
- const svn_wc_entry_t *current_entry = svn__apr_hash_index_val(hi);
+ const char *name = apr_hash_this_key(hi);
+ const svn_wc_entry_t *current_entry = apr_hash_this_val(hi);
const char *entrypath;
const char *entry_abspath;
svn_boolean_t hidden;
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/info.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/info.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/info.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/info.c Thu Jul 31 \
10:44:15 2014 @@ -539,7 +539,7 @@ svn_wc__get_info(svn_wc_context_t *wc_ct
for (hi = apr_hash_first(scratch_pool, fe_baton.tree_conflicts); hi;
hi = apr_hash_next(hi))
{
- const char *this_abspath = svn__apr_hash_index_key(hi);
+ const char *this_abspath = apr_hash_this_key(hi);
const svn_wc_conflict_description3_t *tree_conflict;
svn_wc__info2_t *info;
const apr_array_header_t *conflicts;
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/lock.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/lock.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/lock.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/lock.c Thu Jul 31 \
10:44:15 2014 @@ -1313,8 +1313,8 @@ do_close(svn_wc_adm_access_t *adm_access
hi;
hi = apr_hash_next(hi))
{
- const char *abspath = svn__apr_hash_index_key(hi);
- svn_wc_adm_access_t *child = svn__apr_hash_index_val(hi);
+ const char *abspath = apr_hash_this_key(hi);
+ svn_wc_adm_access_t *child = apr_hash_this_val(hi);
const char *path = child->path;
if (IS_MISSING(child))
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/node.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/node.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/node.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/node.c Thu Jul 31 \
10:44:15 2014 @@ -387,8 +387,8 @@ walker_helper(svn_wc__db_t *db,
hi;
hi = apr_hash_next(hi))
{
- const char *child_name = svn__apr_hash_index_key(hi);
- struct svn_wc__db_walker_info_t *wi = svn__apr_hash_index_val(hi);
+ const char *child_name = apr_hash_this_key(hi);
+ struct svn_wc__db_walker_info_t *wi = apr_hash_this_val(hi);
svn_node_kind_t child_kind = wi->kind;
svn_wc__db_status_t child_status = wi->status;
const char *child_abspath;
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/old-and-busted.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/old-and-busted.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/old-and-busted.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/old-and-busted.c \
Thu Jul 31 10:44:15 2014 @@ -1154,7 +1154,7 @@ resolve_to_defaults(apr_hash_t \
*entries, /* Then use it to fill in missing information in other entries. */
for (hi = apr_hash_first(pool, entries); hi; hi = apr_hash_next(hi))
{
- svn_wc_entry_t *this_entry = svn__apr_hash_index_val(hi);
+ svn_wc_entry_t *this_entry = apr_hash_this_val(hi);
if (this_entry == default_entry)
/* THIS_DIR already has all the information it can possibly
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c Thu Jul 31 \
10:44:15 2014 @@ -2055,8 +2055,8 @@ svn_wc__canonicalize_props(apr_hash_t **
for (hi = apr_hash_first(scratch_pool, (apr_hash_t *)props); hi;
hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
- const svn_string_t *value = svn__apr_hash_index_val(hi);
+ const char *name = apr_hash_this_key(hi);
+ const svn_string_t *value = apr_hash_this_val(hi);
if (strcmp(name, SVN_PROP_MIME_TYPE) == 0)
continue;
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/status.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/status.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/status.c Thu Jul \
31 10:44:15 2014 @@ -947,7 +947,7 @@ is_external_path(apr_hash_t *externals,
hi;
hi = apr_hash_next(hi))
{
- const char *external_abspath = svn__apr_hash_index_key(hi);
+ const char *external_abspath = apr_hash_this_key(hi);
if (svn_dirent_is_child(local_abspath, external_abspath, NULL))
return TRUE;
@@ -1937,8 +1937,8 @@ handle_statii(struct edit_baton *eb,
/* Loop over all the statii still in our hash, handling each one. */
for (hi = apr_hash_first(pool, statii); hi; hi = apr_hash_next(hi))
{
- const char *local_abspath = svn__apr_hash_index_key(hi);
- svn_wc_status3_t *status = svn__apr_hash_index_val(hi);
+ const char *local_abspath = apr_hash_this_key(hi);
+ svn_wc_status3_t *status = apr_hash_this_val(hi);
/* Clear the subpool. */
svn_pool_clear(iterpool);
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c \
Thu Jul 31 10:44:15 2014 @@ -2615,7 +2615,7 @@ close_directory(void *dir_baton,
hi != NULL;
hi = apr_hash_next(hi))
{
- const char *propname = svn__apr_hash_index_key(hi);
+ const char *propname = apr_hash_this_key(hi);
svn_prop_t *prop = apr_array_push(regular_prop_changes);
/* Record a deletion for PROPNAME. */
@@ -2720,11 +2720,11 @@ close_directory(void *dir_baton,
svn_pool_clear(iterpool);
- child_name = svn__apr_hash_index_key(hi);
+ child_name = apr_hash_this_key(hi);
child_abspath = svn_dirent_join(db->local_abspath, child_name,
iterpool);
- dirent = svn__apr_hash_index_val(hi);
+ dirent = apr_hash_this_val(hi);
child_kind = (dirent->kind == svn_node_dir)
? svn_node_dir
: svn_node_file;
@@ -2787,10 +2787,9 @@ close_directory(void *dir_baton,
hi;
hi = apr_hash_next(hi))
{
- const char *child = svn__apr_hash_index_key(hi);
+ const char *child = apr_hash_this_key(hi);
const char *child_abspath, *child_relpath;
- svn_node_kind_t kind = svn_node_kind_from_word(
- svn__apr_hash_index_val(hi));
+ svn_node_kind_t kind = svn_node_kind_from_word(apr_hash_this_val(hi));
svn_pool_clear(iterpool);
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/upgrade.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/upgrade.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/upgrade.c \
(original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/upgrade.c Thu Jul \
31 10:44:15 2014 @@ -193,7 +193,7 @@ read_many_wcprops(apr_hash_t **all_wcpro
hi;
hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
+ const char *name = apr_hash_this_key(hi);
svn_pool_clear(iterpool);
@@ -293,15 +293,15 @@ get_versioned_subdirs(apr_array_header_t
hi;
hi = apr_hash_next(hi))
{
- const char *name = svn__apr_hash_index_key(hi);
- const svn_wc_entry_t *entry = svn__apr_hash_index_val(hi);
+ const char *name = apr_hash_this_key(hi);
+ const svn_wc_entry_t *entry = apr_hash_this_val(hi);
const char *child_abspath;
svn_boolean_t hidden;
/* skip "this dir" */
if (*name == '\0')
{
- this_dir = svn__apr_hash_index_val(hi);
+ this_dir = apr_hash_this_val(hi);
continue;
}
else if (entry->kind != svn_node_dir)
@@ -612,13 +612,13 @@ ensure_repos_info(svn_wc_entry_t *entry,
for (hi = apr_hash_first(scratch_pool, repos_cache);
hi; hi = apr_hash_next(hi))
{
- if (svn_uri__is_ancestor(svn__apr_hash_index_key(hi), entry->url))
+ if (svn_uri__is_ancestor(apr_hash_this_key(hi), entry->url))
{
if (!entry->repos)
- entry->repos = svn__apr_hash_index_key(hi);
+ entry->repos = apr_hash_this_key(hi);
if (!entry->uuid)
- entry->uuid = svn__apr_hash_index_val(hi);
+ entry->uuid = apr_hash_this_val(hi);
return SVN_NO_ERROR;
}
@@ -727,8 +727,7 @@ migrate_single_tree_conflict_data(svn_sq
hi;
hi = apr_hash_next(hi))
{
- const svn_wc_conflict_description3_t *conflict =
- svn__apr_hash_index_val(hi);
+ const svn_wc_conflict_description3_t *conflict = apr_hash_this_val(hi);
const char *conflict_relpath;
const char *conflict_data;
svn_sqlite__stmt_t *stmt;
@@ -1017,7 +1016,7 @@ migrate_text_bases(apr_hash_t **text_bas
for (hi = apr_hash_first(scratch_pool, dirents); hi;
hi = apr_hash_next(hi))
{
- const char *text_base_basename = svn__apr_hash_index_key(hi);
+ const char *text_base_basename = apr_hash_this_key(hi);
svn_checksum_t *md5_checksum;
svn_checksum_t *sha1_checksum;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic