You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/03/30 21:02:33 UTC
svn commit: r1462850 [10/14] - in /subversion/branches/fsfs-format7: ./
build/ build/ac-macros/ build/generator/ contrib/client-side/svncopy/
notes/ subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/apache/subversion/javahl/ subvers...
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/props.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/props.c?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/props.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/props.c Sat Mar 30 20:02:27 2013
@@ -198,7 +198,7 @@ svn_wc_merge_props3(svn_wc_notify_state_
{
int i;
svn_wc__db_status_t status;
- svn_kind_t kind;
+ svn_node_kind_t kind;
apr_hash_t *pristine_props = NULL;
apr_hash_t *actual_props;
apr_hash_t *new_actual_props;
@@ -310,7 +310,7 @@ svn_wc_merge_props3(svn_wc_notify_state_
{
const char *dir_abspath;
- if (kind == svn_kind_dir)
+ if (kind == svn_node_dir)
dir_abspath = local_abspath;
else
dir_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
@@ -1142,13 +1142,13 @@ svn_wc__merge_props(svn_skel_t **conflic
= &APR_ARRAY_IDX(propchanges, i, svn_prop_t);
const char *propname = incoming_change->name;
const svn_string_t *base_val /* Pristine in WC */
- = apr_hash_get(pristine_props, propname, APR_HASH_KEY_STRING);
+ = svn_hash_gets(pristine_props, propname);
const svn_string_t *from_val /* Merge left */
- = apr_hash_get(server_baseprops, propname, APR_HASH_KEY_STRING);
+ = svn_hash_gets(server_baseprops, propname);
const svn_string_t *to_val /* Merge right */
= incoming_change->value;
const svn_string_t *working_val /* Mine */
- = apr_hash_get(actual_props, propname, APR_HASH_KEY_STRING);
+ = svn_hash_gets(actual_props, propname);
const svn_string_t *result_val;
svn_boolean_t conflict_remains;
svn_boolean_t did_merge = FALSE;
@@ -1157,7 +1157,7 @@ svn_wc__merge_props(svn_skel_t **conflic
to_val = to_val ? svn_string_dup(to_val, result_pool) : NULL;
- apr_hash_set(their_props, propname, APR_HASH_KEY_STRING, to_val);
+ svn_hash_sets(their_props, propname, to_val);
/* We already know that state is at least `changed', so mark
@@ -1185,8 +1185,7 @@ svn_wc__merge_props(svn_skel_t **conflic
result_pool, iterpool));
if (result_val != working_val)
- apr_hash_set(*new_actual_props, propname, APR_HASH_KEY_STRING,
- result_val);
+ svn_hash_sets(*new_actual_props, propname, result_val);
if (did_merge)
set_prop_merge_state(state, svn_wc_notify_state_merged);
@@ -1200,7 +1199,7 @@ svn_wc__merge_props(svn_skel_t **conflic
if (!conflict_props)
conflict_props = apr_hash_make(scratch_pool);
- apr_hash_set(conflict_props, propname, APR_HASH_KEY_STRING, "");
+ svn_hash_sets(conflict_props, propname, "");
}
} /* foreach propchange ... */
@@ -1256,7 +1255,7 @@ wcprop_set(svn_wc__db_t *db,
if (prophash == NULL)
prophash = apr_hash_make(scratch_pool);
- apr_hash_set(prophash, name, APR_HASH_KEY_STRING, value);
+ svn_hash_sets(prophash, name, value);
return svn_error_trace(svn_wc__db_base_set_dav_cache(db, local_abspath,
prophash,
scratch_pool));
@@ -1308,13 +1307,12 @@ propname_filter_receiver(void *baton,
apr_pool_t *scratch_pool)
{
struct propname_filter_baton_t *pfb = baton;
- const svn_string_t *propval = apr_hash_get(props, pfb->propname,
- APR_HASH_KEY_STRING);
+ const svn_string_t *propval = svn_hash_gets(props, pfb->propname);
if (propval)
{
props = apr_hash_make(scratch_pool);
- apr_hash_set(props, pfb->propname, APR_HASH_KEY_STRING, propval);
+ svn_hash_sets(props, pfb->propname, propval);
SVN_ERR(pfb->receiver_func(pfb->receiver_baton, local_abspath, props,
scratch_pool));
@@ -1510,7 +1508,7 @@ svn_wc__internal_propget(const svn_strin
}
if (prophash)
- *value = apr_hash_get(prophash, name, APR_HASH_KEY_STRING);
+ *value = svn_hash_gets(prophash, name);
else
*value = NULL;
@@ -1628,7 +1626,8 @@ validate_eol_prop_against_file(const cha
if (mime_type && svn_mime_type_is_binary(mime_type->data))
return svn_error_createf
(SVN_ERR_ILLEGAL_TARGET, NULL,
- _("File '%s' has binary mime type property"),
+ _("Can't set '" SVN_PROP_EOL_STYLE "': "
+ "file '%s' has binary mime type property"),
path_display);
/* Now ask the getter for the contents of the file; this will do a
@@ -1684,8 +1683,7 @@ do_propset(svn_wc__db_t *db,
const svn_string_t *new_value;
struct getter_baton gb;
- gb.mime_type = apr_hash_get(prophash,
- SVN_PROP_MIME_TYPE, APR_HASH_KEY_STRING);
+ gb.mime_type = svn_hash_gets(prophash, SVN_PROP_MIME_TYPE);
gb.local_abspath = local_abspath;
SVN_ERR(svn_wc_canonicalize_svn_prop(&new_value, name, value,
@@ -1714,8 +1712,7 @@ do_propset(svn_wc__db_t *db,
*/
if (kind == svn_node_file && strcmp(name, SVN_PROP_KEYWORDS) == 0)
{
- svn_string_t *old_value = apr_hash_get(prophash, SVN_PROP_KEYWORDS,
- APR_HASH_KEY_STRING);
+ svn_string_t *old_value = svn_hash_gets(prophash, SVN_PROP_KEYWORDS);
apr_hash_t *old_keywords, *new_keywords;
if (old_value)
@@ -1755,8 +1752,7 @@ do_propset(svn_wc__db_t *db,
}
else if (kind == svn_node_file && strcmp(name, SVN_PROP_EOL_STYLE) == 0)
{
- svn_string_t *old_value = apr_hash_get(prophash, SVN_PROP_EOL_STYLE,
- APR_HASH_KEY_STRING);
+ svn_string_t *old_value = svn_hash_gets(prophash, SVN_PROP_EOL_STYLE);
if (((value == NULL) != (old_value == NULL))
|| (value && ! svn_string_compare(value, old_value)))
@@ -1767,7 +1763,7 @@ do_propset(svn_wc__db_t *db,
/* Find out what type of property change we are doing: add, modify, or
delete. */
- if (apr_hash_get(prophash, name, APR_HASH_KEY_STRING) == NULL)
+ if (svn_hash_gets(prophash, name) == NULL)
{
if (value == NULL)
/* Deleting a non-existent property. */
@@ -1788,7 +1784,7 @@ do_propset(svn_wc__db_t *db,
/* Now we have all the properties in our hash. Simply merge the new
property into it. */
- apr_hash_set(prophash, name, APR_HASH_KEY_STRING, value);
+ svn_hash_sets(prophash, name, value);
/* Drop it right into the db.. */
SVN_ERR(svn_wc__db_op_set_props(db, local_abspath, prophash,
@@ -1867,7 +1863,7 @@ svn_wc_prop_set4(svn_wc_context_t *wc_ct
{
enum svn_prop_kind prop_kind = svn_property_kind2(name);
svn_wc__db_status_t status;
- svn_kind_t kind;
+ svn_node_kind_t kind;
svn_wc__db_t *db = wc_ctx->db;
/* we don't do entry properties here */
@@ -1913,7 +1909,7 @@ svn_wc_prop_set4(svn_wc_context_t *wc_ct
{
const char *dir_abspath;
- if (kind == svn_kind_dir)
+ if (kind == svn_node_dir)
dir_abspath = local_abspath;
else
dir_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
@@ -1922,7 +1918,7 @@ svn_wc_prop_set4(svn_wc_context_t *wc_ct
SVN_ERR(svn_wc__write_check(db, dir_abspath, scratch_pool));
}
- if (depth == svn_depth_empty || kind != svn_kind_dir)
+ if (depth == svn_depth_empty || kind != svn_node_dir)
{
apr_hash_t *changelist_hash = NULL;
@@ -1935,7 +1931,7 @@ svn_wc_prop_set4(svn_wc_context_t *wc_ct
return SVN_NO_ERROR;
SVN_ERR(do_propset(wc_ctx->db, local_abspath,
- kind == svn_kind_dir
+ kind == svn_node_dir
? svn_node_dir
: svn_node_file,
name, value, skip_checks,
@@ -2004,16 +2000,14 @@ svn_wc__canonicalize_props(apr_hash_t **
/* Before we can canonicalize svn:eol-style we need to know svn:mime-type,
* so process that first. */
- mime_type = apr_hash_get((apr_hash_t *)props,
- SVN_PROP_MIME_TYPE, APR_HASH_KEY_STRING);
+ mime_type = svn_hash_gets((apr_hash_t *)props, SVN_PROP_MIME_TYPE);
if (mime_type)
{
SVN_ERR(svn_wc_canonicalize_svn_prop(
&mime_type, SVN_PROP_MIME_TYPE, mime_type,
local_abspath, node_kind, skip_some_checks,
NULL, NULL, scratch_pool));
- apr_hash_set(*prepared_props, SVN_PROP_MIME_TYPE, APR_HASH_KEY_STRING,
- mime_type);
+ svn_hash_sets(*prepared_props, SVN_PROP_MIME_TYPE, mime_type);
}
/* Set up the context for canonicalizing the other properties. */
@@ -2035,7 +2029,7 @@ svn_wc__canonicalize_props(apr_hash_t **
&value, name, value,
local_abspath, node_kind, skip_some_checks,
get_file_for_validation, &gb, scratch_pool));
- apr_hash_set(*prepared_props, name, APR_HASH_KEY_STRING, value);
+ svn_hash_sets(*prepared_props, name, value);
}
return SVN_NO_ERROR;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/questions.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/questions.c?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/questions.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/questions.c Sat Mar 30 20:02:27 2013
@@ -224,7 +224,7 @@ svn_wc__internal_file_modified_p(svn_boo
svn_stream_t *pristine_stream;
svn_filesize_t pristine_size;
svn_wc__db_status_t status;
- svn_kind_t kind;
+ svn_node_kind_t kind;
const svn_checksum_t *checksum;
svn_filesize_t recorded_size;
apr_time_t recorded_mod_time;
@@ -245,7 +245,7 @@ svn_wc__internal_file_modified_p(svn_boo
/* If we don't have a pristine or the node has a status that allows a
pristine, just say that the node is modified */
if (!checksum
- || (kind != svn_kind_file)
+ || (kind != svn_node_file)
|| ((status != svn_wc__db_status_normal)
&& (status != svn_wc__db_status_added)))
{
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/relocate.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/relocate.c?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/relocate.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/relocate.c Sat Mar 30 20:02:27 2013
@@ -85,7 +85,7 @@ svn_wc_relocate4(svn_wc_context_t *wc_ct
void *validator_baton,
apr_pool_t *scratch_pool)
{
- svn_kind_t kind;
+ svn_node_kind_t kind;
const char *repos_relpath;
const char *old_repos_root, *old_url;
const char *new_repos_root, *new_url;
@@ -131,7 +131,7 @@ svn_wc_relocate4(svn_wc_context_t *wc_ct
wc_ctx->db, local_abspath, scratch_pool,
scratch_pool));
- if (kind != svn_kind_dir)
+ if (kind != svn_node_dir)
return svn_error_create(SVN_ERR_CLIENT_INVALID_RELOCATION, NULL,
_("Cannot relocate a single file"));
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/revert.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/revert.c?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/revert.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/revert.c Sat Mar 30 20:02:27 2013
@@ -180,7 +180,7 @@ revert_restore_handle_copied_dirs(svn_bo
if (cancel_func)
SVN_ERR(cancel_func(cancel_baton));
- if (child_info->kind != svn_kind_file)
+ if (child_info->kind != svn_node_file)
continue;
svn_pool_clear(iterpool);
@@ -210,7 +210,7 @@ revert_restore_handle_copied_dirs(svn_bo
if (cancel_func)
SVN_ERR(cancel_func(cancel_baton));
- if (child_info->kind != svn_kind_dir)
+ if (child_info->kind != svn_node_dir)
continue;
svn_pool_clear(iterpool);
@@ -270,7 +270,7 @@ revert_restore(svn_wc__db_t *db,
{
svn_error_t *err;
svn_wc__db_status_t status;
- svn_kind_t kind;
+ svn_node_kind_t kind;
svn_node_kind_t on_disk;
svn_boolean_t notify_required;
const apr_array_header_t *conflict_files;
@@ -281,7 +281,7 @@ revert_restore(svn_wc__db_t *db,
svn_boolean_t special;
#endif
svn_boolean_t copied_here;
- svn_kind_t reverted_kind;
+ svn_node_kind_t reverted_kind;
svn_boolean_t is_wcroot;
if (cancel_func)
@@ -345,7 +345,7 @@ revert_restore(svn_wc__db_t *db,
* ### trying to restore anything to disk.
* ### 'status' should be status_unknown but that doesn't exist. */
status = svn_wc__db_status_normal;
- kind = svn_kind_unknown;
+ kind = svn_node_unknown;
recorded_size = SVN_INVALID_FILESIZE;
recorded_time = 0;
}
@@ -388,12 +388,12 @@ revert_restore(svn_wc__db_t *db,
if (copied_here)
{
/* The revert target itself is the op-root of a copy. */
- if (reverted_kind == svn_kind_file && on_disk == svn_node_file)
+ if (reverted_kind == svn_node_file && on_disk == svn_node_file)
{
SVN_ERR(svn_io_remove_file2(local_abspath, TRUE, scratch_pool));
on_disk = svn_node_none;
}
- else if (reverted_kind == svn_kind_dir && on_disk == svn_node_dir)
+ else if (reverted_kind == svn_node_dir && on_disk == svn_node_dir)
{
svn_boolean_t removed;
@@ -415,18 +415,18 @@ revert_restore(svn_wc__db_t *db,
&& status != svn_wc__db_status_excluded
&& status != svn_wc__db_status_not_present)
{
- if (on_disk == svn_node_dir && kind != svn_kind_dir)
+ if (on_disk == svn_node_dir && kind != svn_node_dir)
{
SVN_ERR(svn_io_remove_dir2(local_abspath, FALSE,
cancel_func, cancel_baton, scratch_pool));
on_disk = svn_node_none;
}
- else if (on_disk == svn_node_file && kind != svn_kind_file)
+ else if (on_disk == svn_node_file && kind != svn_node_file)
{
#ifdef HAVE_SYMLINK
/* Preserve symlinks pointing at directories. Changes on the
* directory node have been reverted. The symlink should remain. */
- if (!(special && kind == svn_kind_dir))
+ if (!(special && kind == svn_node_dir))
#endif
{
SVN_ERR(svn_io_remove_file2(local_abspath, FALSE, scratch_pool));
@@ -445,8 +445,7 @@ revert_restore(svn_wc__db_t *db,
scratch_pool, scratch_pool));
#ifdef HAVE_SYMLINK
- special_prop = apr_hash_get(props, SVN_PROP_SPECIAL,
- APR_HASH_KEY_STRING);
+ special_prop = svn_hash_gets(props, SVN_PROP_SPECIAL);
if ((special_prop != NULL) != special)
{
@@ -499,8 +498,8 @@ revert_restore(svn_wc__db_t *db,
SVN_ERR(svn_io__is_finfo_read_only(&read_only, &finfo,
scratch_pool));
- needs_lock_prop = apr_hash_get(props, SVN_PROP_NEEDS_LOCK,
- APR_HASH_KEY_STRING);
+ needs_lock_prop = svn_hash_gets(props,
+ SVN_PROP_NEEDS_LOCK);
if (needs_lock_prop && !read_only)
{
SVN_ERR(svn_io_set_file_read_only(local_abspath,
@@ -527,8 +526,8 @@ revert_restore(svn_wc__db_t *db,
SVN_ERR(svn_io__is_finfo_executable(&executable, &finfo,
scratch_pool));
- executable_prop = apr_hash_get(props, SVN_PROP_EXECUTABLE,
- APR_HASH_KEY_STRING);
+ executable_prop = svn_hash_gets(props,
+ SVN_PROP_EXECUTABLE);
if (executable_prop && !executable)
{
SVN_ERR(svn_io_set_file_executable(local_abspath,
@@ -558,10 +557,10 @@ revert_restore(svn_wc__db_t *db,
&& status != svn_wc__db_status_excluded
&& status != svn_wc__db_status_not_present)
{
- if (kind == svn_kind_dir)
+ if (kind == svn_node_dir)
SVN_ERR(svn_io_dir_make(local_abspath, APR_OS_DEFAULT, scratch_pool));
- if (kind == svn_kind_file)
+ if (kind == svn_node_file)
{
svn_skel_t *work_item;
@@ -595,7 +594,7 @@ revert_restore(svn_wc__db_t *db,
scratch_pool),
scratch_pool);
- if (depth == svn_depth_infinity && kind == svn_kind_dir)
+ if (depth == svn_depth_infinity && kind == svn_node_dir)
{
apr_pool_t *iterpool = svn_pool_create(scratch_pool);
const apr_array_header_t *children;
@@ -811,14 +810,14 @@ revert_partial(svn_wc__db_t *db,
/* For svn_depth_files: don't revert non-files. */
if (depth == svn_depth_files)
{
- svn_kind_t kind;
+ svn_node_kind_t kind;
SVN_ERR(svn_wc__db_read_kind(&kind, db, child_abspath,
FALSE /* allow_missing */,
TRUE /* show_deleted */,
FALSE /* show_hidden */,
iterpool));
- if (kind != svn_kind_file)
+ if (kind != svn_node_file)
continue;
}
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/status.c?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/status.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/status.c Sat Mar 30 20:02:27 2013
@@ -276,7 +276,7 @@ read_info(const struct svn_wc__db_info_t
if (mtb->have_base
&& (mtb->status == svn_wc__db_status_added
|| mtb->status == svn_wc__db_status_deleted
- || mtb->kind == svn_kind_file))
+ || mtb->kind == svn_node_file))
{
svn_boolean_t update_root;
svn_wc__db_lock_t **lock_arg = NULL;
@@ -291,7 +291,7 @@ read_info(const struct svn_wc__db_info_t
db, local_abspath,
result_pool, scratch_pool));
- mtb->file_external = (update_root && mtb->kind == svn_kind_file);
+ mtb->file_external = (update_root && mtb->kind == svn_node_file);
if (mtb->status == svn_wc__db_status_deleted)
{
@@ -361,7 +361,7 @@ read_info(const struct svn_wc__db_info_t
mtb->copied = (original_repos_relpath != NULL);
#ifdef HAVE_SYMLINK
- if (mtb->kind == svn_kind_file
+ if (mtb->kind == svn_node_file
&& (mtb->had_props || mtb->props_mod))
{
apr_hash_t *properties;
@@ -373,8 +373,7 @@ read_info(const struct svn_wc__db_info_t
SVN_ERR(svn_wc__db_read_pristine_props(&properties, db, local_abspath,
scratch_pool, scratch_pool));
- mtb->special = (NULL != apr_hash_get(properties, SVN_PROP_SPECIAL,
- APR_HASH_KEY_STRING));
+ mtb->special = (NULL != svn_hash_gets(properties, SVN_PROP_SPECIAL));
}
#endif
*info = mtb;
@@ -538,7 +537,7 @@ assemble_status(svn_wc_status3_t **statu
{
/* Examine whether our target is missing or obstructed. To detect
* obstructions, we have to look at the on-disk status in DIRENT. */
- svn_node_kind_t expected_kind = (info->kind == svn_kind_dir)
+ svn_node_kind_t expected_kind = (info->kind == svn_node_dir)
? svn_node_dir
: svn_node_file;
@@ -567,7 +566,7 @@ assemble_status(svn_wc_status3_t **statu
If it was changed, then the subdir is incomplete or missing/obstructed.
*/
- if (info->kind != svn_kind_dir
+ if (info->kind != svn_node_dir
&& node_status == svn_wc_status_normal)
{
svn_boolean_t text_modified_p = FALSE;
@@ -579,8 +578,8 @@ assemble_status(svn_wc_status3_t **statu
precedence over M. */
/* If the entry is a file, check for textual modifications */
- if ((info->kind == svn_kind_file
- || info->kind == svn_kind_symlink)
+ if ((info->kind == svn_node_file
+ || info->kind == svn_node_symlink)
#ifdef HAVE_SYMLINK
&& (info->special == (dirent && dirent->special))
#endif /* HAVE_SYMLINK */
@@ -738,14 +737,14 @@ assemble_status(svn_wc_status3_t **statu
switch (info->kind)
{
- case svn_kind_dir:
+ case svn_node_dir:
stat->kind = svn_node_dir;
break;
- case svn_kind_file:
- case svn_kind_symlink:
+ case svn_node_file:
+ case svn_node_symlink:
stat->kind = svn_node_file;
break;
- case svn_kind_unknown:
+ case svn_node_unknown:
default:
stat->kind = svn_node_unknown;
}
@@ -915,10 +914,9 @@ send_status_structure(const struct walk_
{
/* repos_lock still uses the deprecated filesystem absolute path
format */
- repos_lock = apr_hash_get(wb->repos_locks,
- svn_fspath__join("/", repos_relpath,
- scratch_pool),
- APR_HASH_KEY_STRING);
+ repos_lock = svn_hash_gets(wb->repos_locks,
+ svn_fspath__join("/", repos_relpath,
+ scratch_pool));
}
}
@@ -1037,7 +1035,7 @@ is_external_path(apr_hash_t *externals,
apr_hash_index_t *hi;
/* First try: does the path exist as a key in the hash? */
- if (apr_hash_get(externals, local_abspath, APR_HASH_KEY_STRING))
+ if (svn_hash_gets(externals, local_abspath))
return TRUE;
/* Failing that, we need to check if any external is a child of
@@ -1196,11 +1194,11 @@ one_child_status(const struct walk_statu
&& info->status != svn_wc__db_status_not_present
&& info->status != svn_wc__db_status_excluded
&& info->status != svn_wc__db_status_server_excluded
- && !(info->kind == svn_kind_unknown
+ && !(info->kind == svn_node_unknown
&& info->status == svn_wc__db_status_normal))
{
if (depth == svn_depth_files
- && info->kind == svn_kind_dir)
+ && info->kind == svn_node_dir)
{
return SVN_NO_ERROR;
}
@@ -1215,7 +1213,7 @@ one_child_status(const struct walk_statu
/* Descend in subdirectories. */
if (depth == svn_depth_infinity
- && info->kind == svn_kind_dir)
+ && info->kind == svn_node_dir)
{
SVN_ERR(get_dir_status(wb, local_abspath, TRUE,
dir_repos_root_url, dir_repos_relpath,
@@ -1560,9 +1558,9 @@ hash_stash(void *baton,
{
apr_hash_t *stat_hash = baton;
apr_pool_t *hash_pool = apr_hash_pool_get(stat_hash);
- assert(! apr_hash_get(stat_hash, path, APR_HASH_KEY_STRING));
- apr_hash_set(stat_hash, apr_pstrdup(hash_pool, path),
- APR_HASH_KEY_STRING, svn_wc_dup_status3(status, hash_pool));
+ assert(! svn_hash_gets(stat_hash, path));
+ svn_hash_sets(stat_hash, apr_pstrdup(hash_pool, path),
+ svn_wc_dup_status3(status, hash_pool));
return SVN_NO_ERROR;
}
@@ -1621,7 +1619,7 @@ tweak_statushash(void *baton,
pool = apr_hash_pool_get(statushash);
/* Is PATH already a hash-key? */
- statstruct = apr_hash_get(statushash, local_abspath, APR_HASH_KEY_STRING);
+ statstruct = svn_hash_gets(statushash, local_abspath);
/* If not, make it so. */
if (! statstruct)
@@ -1644,8 +1642,7 @@ tweak_statushash(void *baton,
SVN_ERR(internal_status(&statstruct, db, local_abspath, pool,
scratch_pool));
statstruct->repos_lock = repos_lock;
- apr_hash_set(statushash, apr_pstrdup(pool, local_abspath),
- APR_HASH_KEY_STRING, statstruct);
+ svn_hash_sets(statushash, apr_pstrdup(pool, local_abspath), statstruct);
}
/* Merge a repos "delete" + "add" into a single "replace". */
@@ -1747,9 +1744,8 @@ find_dir_repos_relpath(const struct dir_
{
const char *repos_relpath;
struct dir_baton *pb = db->parent_baton;
- const svn_wc_status3_t *status = apr_hash_get(pb->statii,
- db->local_abspath,
- APR_HASH_KEY_STRING);
+ const svn_wc_status3_t *status = svn_hash_gets(pb->statii,
+ db->local_abspath);
/* Note that status->repos_relpath could be NULL in the case of a missing
* directory, which means we need to recurse up another level to get
* a useful relpath. */
@@ -1829,8 +1825,7 @@ make_dir_baton(void **dir_baton,
/* Get the status for this path's children. Of course, we only want
to do this if the path is versioned as a directory. */
if (pb)
- status_in_parent = apr_hash_get(pb->statii, d->local_abspath,
- APR_HASH_KEY_STRING);
+ status_in_parent = svn_hash_gets(pb->statii, d->local_abspath);
else
status_in_parent = eb->anchor_status;
@@ -1862,8 +1857,7 @@ make_dir_baton(void **dir_baton,
dir_pool));
/* If we found a depth here, it should govern. */
- this_dir_status = apr_hash_get(d->statii, d->local_abspath,
- APR_HASH_KEY_STRING);
+ this_dir_status = svn_hash_gets(d->statii, d->local_abspath);
if (this_dir_status && this_dir_status->versioned
&& (d->depth == svn_depth_unknown
|| d->depth > status_in_parent->depth))
@@ -2266,8 +2260,7 @@ close_directory(void *dir_baton,
const svn_wc_status3_t *dir_status;
/* See if the directory was deleted or replaced. */
- dir_status = apr_hash_get(pb->statii, db->local_abspath,
- APR_HASH_KEY_STRING);
+ dir_status = svn_hash_gets(pb->statii, db->local_abspath);
if (dir_status &&
((dir_status->repos_node_status == svn_wc_status_deleted)
|| (dir_status->repos_node_status == svn_wc_status_replaced)))
@@ -2283,7 +2276,7 @@ close_directory(void *dir_baton,
eb->get_all))
SVN_ERR((eb->status_func)(eb->status_baton, db->local_abspath,
dir_status, scratch_pool));
- apr_hash_set(pb->statii, db->local_abspath, APR_HASH_KEY_STRING, NULL);
+ svn_hash_sets(pb->statii, db->local_abspath, NULL);
}
else if (! pb)
{
@@ -2293,8 +2286,7 @@ close_directory(void *dir_baton,
{
const svn_wc_status3_t *tgt_status;
- tgt_status = apr_hash_get(db->statii, eb->target_abspath,
- APR_HASH_KEY_STRING);
+ tgt_status = svn_hash_gets(db->statii, eb->target_abspath);
if (tgt_status)
{
if (tgt_status->versioned
@@ -2469,10 +2461,9 @@ close_file(void *file_baton,
const char *repos_relpath = svn_relpath_join(dir_repos_relpath,
fb->name, pool);
- repos_lock = apr_hash_get(fb->edit_baton->wb.repos_locks,
- svn_fspath__join("/", repos_relpath,
- pool),
- APR_HASH_KEY_STRING);
+ repos_lock = svn_hash_gets(fb->edit_baton->wb.repos_locks,
+ svn_fspath__join("/", repos_relpath,
+ pool));
}
}
else
@@ -2747,7 +2738,7 @@ svn_wc__internal_walk_status(svn_wc__db_
}
if (info
- && info->kind == svn_kind_dir
+ && info->kind == svn_node_dir
&& info->status != svn_wc__db_status_not_present
&& info->status != svn_wc__db_status_excluded
&& info->status != svn_wc__db_status_server_excluded)
@@ -2847,9 +2838,9 @@ svn_wc_get_default_ignores(apr_array_hea
apr_hash_t *config,
apr_pool_t *pool)
{
- svn_config_t *cfg = config ? apr_hash_get(config,
- SVN_CONFIG_CATEGORY_CONFIG,
- APR_HASH_KEY_STRING) : NULL;
+ svn_config_t *cfg = config
+ ? svn_hash_gets(config, SVN_CONFIG_CATEGORY_CONFIG)
+ : NULL;
const char *val;
/* Check the Subversion run-time configuration for global ignores.
@@ -2874,7 +2865,7 @@ internal_status(svn_wc_status3_t **statu
apr_pool_t *scratch_pool)
{
const svn_io_dirent2_t *dirent;
- svn_kind_t node_kind;
+ svn_node_kind_t node_kind;
const char *parent_repos_relpath;
const char *parent_repos_root_url;
const char *parent_repos_uuid;
@@ -2898,7 +2889,7 @@ internal_status(svn_wc_status3_t **statu
return svn_error_trace(err);
svn_error_clear(err);
- node_kind = svn_kind_unknown;
+ node_kind = svn_node_unknown;
/* Ensure conflicted is always set, but don't hide tree conflicts
on 'hidden' nodes. */
conflicted = FALSE;
@@ -2910,15 +2901,15 @@ internal_status(svn_wc_status3_t **statu
SVN_ERR(stat_wc_dirent_case_sensitive(&dirent, db, local_abspath,
scratch_pool, scratch_pool));
- if (node_kind != svn_kind_unknown
+ if (node_kind != svn_node_unknown
&& (node_status == svn_wc__db_status_not_present
|| node_status == svn_wc__db_status_server_excluded
|| node_status == svn_wc__db_status_excluded))
{
- node_kind = svn_kind_unknown;
+ node_kind = svn_node_unknown;
}
- if (node_kind == svn_kind_unknown)
+ if (node_kind == svn_node_unknown)
return svn_error_trace(assemble_unversioned(status,
db, local_abspath,
dirent, conflicted,
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/token-map.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/token-map.h?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/token-map.h (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/token-map.h Sat Mar 30 20:02:27 2013
@@ -34,10 +34,10 @@ extern "C" {
#endif
static const svn_token_map_t kind_map[] = {
- { "file", svn_kind_file }, /* MAP_FILE */
- { "dir", svn_kind_dir }, /* MAP_DIR */
- { "symlink", svn_kind_symlink }, /* MAP_SYMLINK */
- { "unknown", svn_kind_unknown }, /* MAP_UNKNOWN */
+ { "file", svn_node_file }, /* MAP_FILE */
+ { "dir", svn_node_dir }, /* MAP_DIR */
+ { "symlink", svn_node_symlink }, /* MAP_SYMLINK */
+ { "unknown", svn_node_unknown }, /* MAP_UNKNOWN */
{ NULL }
};
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/translate.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/translate.c?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/translate.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/translate.c Sat Mar 30 20:02:27 2013
@@ -33,6 +33,7 @@
#include "svn_types.h"
#include "svn_string.h"
#include "svn_dirent_uri.h"
+#include "svn_hash.h"
#include "svn_path.h"
#include "svn_error.h"
#include "svn_subst.h"
@@ -365,7 +366,7 @@ svn_wc__sync_flags_with_props(svn_boolea
apr_pool_t *scratch_pool)
{
svn_wc__db_status_t status;
- svn_kind_t kind;
+ svn_node_kind_t kind;
svn_wc__db_lock_t *lock;
apr_hash_t *props = NULL;
svn_boolean_t had_props;
@@ -388,7 +389,7 @@ svn_wc__sync_flags_with_props(svn_boolea
early-out for all other types.
Also bail if there is no in-wc representation of the file. */
- if (kind != svn_kind_file
+ if (kind != svn_node_file
|| (status != svn_wc__db_status_normal
&& status != svn_wc__db_status_added))
return SVN_NO_ERROR;
@@ -407,7 +408,7 @@ svn_wc__sync_flags_with_props(svn_boolea
/* Handle the read-write bit. */
if (status != svn_wc__db_status_normal
|| props == NULL
- || ! apr_hash_get(props, SVN_PROP_NEEDS_LOCK, APR_HASH_KEY_STRING)
+ || ! svn_hash_gets(props, SVN_PROP_NEEDS_LOCK)
|| lock)
{
SVN_ERR(svn_io_set_file_read_write(local_abspath, FALSE, scratch_pool));
@@ -427,8 +428,7 @@ svn_wc__sync_flags_with_props(svn_boolea
pristine_props = NULL;
if (pristine_props
- && apr_hash_get(pristine_props,
- SVN_PROP_NEEDS_LOCK, APR_HASH_KEY_STRING) )
+ && svn_hash_gets(pristine_props, SVN_PROP_NEEDS_LOCK) )
/*&& props
&& apr_hash_get(props, SVN_PROP_NEEDS_LOCK, APR_HASH_KEY_STRING) )*/
SVN_ERR(svn_io_set_file_read_only(local_abspath, FALSE, scratch_pool));
@@ -438,7 +438,7 @@ svn_wc__sync_flags_with_props(svn_boolea
#ifndef WIN32
if (props == NULL
- || ! apr_hash_get(props, SVN_PROP_EXECUTABLE, APR_HASH_KEY_STRING))
+ || ! svn_hash_gets(props, SVN_PROP_EXECUTABLE))
{
/* Turn off the execute bit */
SVN_ERR(svn_io_set_file_executable(local_abspath, FALSE, FALSE,
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/tree_conflicts.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/tree_conflicts.c?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/tree_conflicts.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/tree_conflicts.c Sat Mar 30 20:02:27 2013
@@ -38,6 +38,8 @@
/* ### this should move to a more general location... */
/* A map for svn_node_kind_t values. */
+/* FIXME: this mapping defines a different representation of
+ svn_node_unknown than the one defined in token-map.h */
static const svn_token_map_t node_kind_map[] =
{
{ "none", svn_node_none },
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/update_editor.c?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/update_editor.c Sat Mar 30 20:02:27 2013
@@ -275,11 +275,11 @@ remember_skipped_tree(struct edit_baton
{
SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
- apr_hash_set(eb->skipped_trees,
- apr_pstrdup(eb->pool,
- svn_dirent_skip_ancestor(eb->wcroot_abspath,
- local_abspath)),
- APR_HASH_KEY_STRING, (void*)1);
+ svn_hash_sets(eb->skipped_trees,
+ apr_pstrdup(eb->pool,
+ svn_dirent_skip_ancestor(eb->wcroot_abspath,
+ local_abspath)),
+ (void *)1);
return SVN_NO_ERROR;
}
@@ -1125,8 +1125,9 @@ path_join_under_root(const char **result
{
return svn_error_createf(
SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
- _("'%s' is not valid as filename in a working copy path"),
- svn_dirent_local_style(add_path, pool));
+ _("'%s' is not valid as filename in directory '%s'"),
+ svn_dirent_local_style(add_path, pool),
+ svn_dirent_local_style(base_path, pool));
}
return SVN_NO_ERROR;
@@ -1171,7 +1172,7 @@ open_root(void *edit_baton,
svn_error_t *err;
svn_wc__db_status_t status;
svn_wc__db_status_t base_status;
- svn_kind_t kind;
+ svn_node_kind_t kind;
svn_boolean_t have_work;
/* Note that something interesting is actually happening in this
@@ -1683,7 +1684,7 @@ delete_entry(const char *path,
const char *base = svn_relpath_basename(path, NULL);
const char *local_abspath;
const char *repos_relpath;
- svn_kind_t kind, base_kind;
+ svn_node_kind_t kind, base_kind;
svn_revnum_t old_revision;
svn_boolean_t conflicted;
svn_boolean_t have_work;
@@ -1814,7 +1815,7 @@ delete_entry(const char *path,
{
SVN_ERR(check_tree_conflict(&tree_conflict, eb, local_abspath,
status, TRUE,
- (kind == svn_kind_dir)
+ (kind == svn_node_dir)
? svn_node_dir
: svn_node_file,
svn_wc_conflict_action_delete,
@@ -1833,8 +1834,8 @@ delete_entry(const char *path,
if (!pb->deletion_conflicts)
pb->deletion_conflicts = apr_hash_make(pb->pool);
- apr_hash_set(pb->deletion_conflicts, apr_pstrdup(pb->pool, base),
- APR_HASH_KEY_STRING, tree_conflict);
+ svn_hash_sets(pb->deletion_conflicts, apr_pstrdup(pb->pool, base),
+ tree_conflict);
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL,
eb->db, local_abspath,
@@ -1871,7 +1872,7 @@ delete_entry(const char *path,
SVN_ERR(complete_conflict(tree_conflict, eb, local_abspath, repos_relpath,
old_revision, NULL,
- (kind == svn_kind_dir)
+ (kind == svn_node_dir)
? svn_node_dir
: svn_node_file,
svn_node_none,
@@ -1927,7 +1928,7 @@ delete_entry(const char *path,
if (pb->shadowed || pb->edit_obstructed)
action = svn_wc_notify_update_shadowed_delete;
- if (kind == svn_kind_dir)
+ if (kind == svn_node_dir)
node_kind = svn_node_dir;
else
node_kind = svn_node_file;
@@ -1954,7 +1955,7 @@ add_directory(const char *path,
struct dir_baton *db;
svn_node_kind_t kind;
svn_wc__db_status_t status;
- svn_kind_t wc_kind;
+ svn_node_kind_t wc_kind;
svn_boolean_t conflicted;
svn_boolean_t versioned_locally_and_present;
svn_skel_t *tree_conflict = NULL;
@@ -2010,13 +2011,13 @@ add_directory(const char *path,
return svn_error_trace(err);
svn_error_clear(err);
- wc_kind = svn_kind_unknown;
+ wc_kind = svn_node_unknown;
status = svn_wc__db_status_normal;
conflicted = FALSE;
versioned_locally_and_present = FALSE;
}
- else if (wc_kind == svn_kind_dir
+ else if (wc_kind == svn_node_dir
&& status == svn_wc__db_status_normal)
{
/* !! We found the root of a separate working copy obstructing the wc !!
@@ -2034,7 +2035,7 @@ add_directory(const char *path,
eb->repos_root,
eb->repos_uuid,
*eb->target_revision,
- svn_kind_file,
+ svn_node_file,
NULL, NULL,
pool));
@@ -2048,8 +2049,8 @@ add_directory(const char *path,
return SVN_NO_ERROR;
}
else if (status == svn_wc__db_status_normal
- && (wc_kind == svn_kind_file
- || wc_kind == svn_kind_symlink))
+ && (wc_kind == svn_node_file
+ || wc_kind == svn_node_symlink))
{
/* We found a file external occupating the place we need in BASE.
@@ -2071,7 +2072,7 @@ add_directory(const char *path,
return SVN_NO_ERROR;
}
- else if (wc_kind == svn_kind_unknown)
+ else if (wc_kind == svn_node_unknown)
versioned_locally_and_present = FALSE; /* Tree conflict ACTUAL-only node */
else
versioned_locally_and_present = IS_NODE_PRESENT(status);
@@ -2080,8 +2081,7 @@ add_directory(const char *path,
if (conflicted)
{
if (pb->deletion_conflicts)
- tree_conflict = apr_hash_get(pb->deletion_conflicts, db->name,
- APR_HASH_KEY_STRING);
+ tree_conflict = svn_hash_gets(pb->deletion_conflicts, db->name);
if (tree_conflict)
{
@@ -2144,7 +2144,7 @@ add_directory(const char *path,
eb->repos_root,
eb->repos_uuid,
*eb->target_revision,
- svn_kind_dir,
+ svn_node_dir,
NULL, NULL,
pool));
@@ -2183,7 +2183,7 @@ add_directory(const char *path,
/* Is there *something* that is not a dir? */
- local_is_non_dir = (wc_kind != svn_kind_dir
+ local_is_non_dir = (wc_kind != svn_node_dir
&& status != svn_wc__db_status_deleted);
/* Do tree conflict checking if
@@ -2239,7 +2239,7 @@ add_directory(const char *path,
SVN_ERR(complete_conflict(tree_conflict, eb, db->local_abspath,
db->old_repos_relpath, db->old_revision,
db->new_relpath,
- svn__node_kind_from_kind(wc_kind),
+ wc_kind,
svn_node_dir,
db->pool, pool));
@@ -2307,7 +2307,7 @@ open_directory(const char *path,
svn_boolean_t conflicted;
svn_skel_t *tree_conflict = NULL;
svn_wc__db_status_t status, base_status;
- svn_kind_t wc_kind;
+ svn_node_kind_t wc_kind;
SVN_ERR(make_dir_baton(&db, path, eb, pb, FALSE, pool));
*child_baton = db;
@@ -2553,8 +2553,7 @@ close_directory(void *dir_baton,
{
const svn_prop_t *prop;
prop = &APR_ARRAY_IDX(regular_prop_changes, i, svn_prop_t);
- apr_hash_set(props_to_delete, prop->name,
- APR_HASH_KEY_STRING, NULL);
+ svn_hash_sets(props_to_delete, prop->name, NULL);
}
/* Add these props to the incoming propchanges (in
@@ -2589,8 +2588,7 @@ close_directory(void *dir_baton,
const svn_string_t *new_val_s = change->value;
const svn_string_t *old_val_s;
- old_val_s = apr_hash_get(base_props, SVN_PROP_EXTERNALS,
- APR_HASH_KEY_STRING);
+ old_val_s = svn_hash_gets(base_props, SVN_PROP_EXTERNALS);
if ((new_val_s == NULL) && (old_val_s == NULL))
; /* No value before, no value after... so do nothing. */
@@ -2647,8 +2645,7 @@ close_directory(void *dir_baton,
/* Check if we should add some not-present markers before marking the
directory complete (Issue #3569) */
{
- apr_hash_t *new_children = apr_hash_get(eb->dir_dirents, db->new_relpath,
- APR_HASH_KEY_STRING);
+ apr_hash_t *new_children = svn_hash_gets(eb->dir_dirents, db->new_relpath);
if (new_children != NULL)
{
@@ -2664,7 +2661,7 @@ close_directory(void *dir_baton,
const char *child_relpath;
const svn_dirent_t *dirent;
svn_wc__db_status_t status;
- svn_kind_t child_kind;
+ svn_node_kind_t child_kind;
svn_error_t *err;
svn_pool_clear(iterpool);
@@ -2675,11 +2672,11 @@ close_directory(void *dir_baton,
dirent = svn__apr_hash_index_val(hi);
child_kind = (dirent->kind == svn_node_dir)
- ? svn_kind_dir
- : svn_kind_file;
+ ? svn_node_dir
+ : svn_node_file;
if (db->ambient_depth < svn_depth_immediates
- && child_kind == svn_kind_dir)
+ && child_kind == svn_node_dir)
continue; /* We don't need the subdirs */
/* ### We just check if there is some node in BASE at this path */
@@ -2750,7 +2747,7 @@ close_directory(void *dir_baton,
eb->repos_root,
eb->repos_uuid,
*eb->target_revision,
- svn_kind_file,
+ svn_node_file,
NULL, NULL,
iterpool));
}
@@ -2834,8 +2831,7 @@ close_directory(void *dir_baton,
/* Any inherited props to be set set for this base node? */
if (eb->wcroot_iprops)
{
- iprops = apr_hash_get(eb->wcroot_iprops, db->local_abspath,
- APR_HASH_KEY_STRING);
+ iprops = svn_hash_gets(eb->wcroot_iprops, db->local_abspath);
/* close_edit may also update iprops for switched nodes, catching
those for which close_directory is never called (e.g. a switch
@@ -2843,8 +2839,7 @@ close_directory(void *dir_baton,
iprops from the hash so as not to set them again in
close_edit. */
if (iprops)
- apr_hash_set(eb->wcroot_iprops, db->local_abspath,
- APR_HASH_KEY_STRING, NULL);
+ svn_hash_sets(eb->wcroot_iprops, db->local_abspath, NULL);
}
/* Update the BASE data for the directory and mark the directory
@@ -2921,7 +2916,7 @@ close_directory(void *dir_baton,
/* Common code for 'absent_file' and 'absent_directory'. */
static svn_error_t *
absent_node(const char *path,
- svn_kind_t absent_kind,
+ svn_node_kind_t absent_kind,
void *parent_baton,
apr_pool_t *pool)
{
@@ -2932,7 +2927,7 @@ absent_node(const char *path,
const char *local_abspath;
svn_error_t *err;
svn_wc__db_status_t status;
- svn_kind_t kind;
+ svn_node_kind_t kind;
if (pb->skip_this)
return SVN_NO_ERROR;
@@ -2957,11 +2952,11 @@ absent_node(const char *path,
svn_error_clear(err);
status = svn_wc__db_status_not_present;
- kind = svn_kind_unknown;
+ kind = svn_node_unknown;
}
if (status == svn_wc__db_status_normal
- && kind == svn_kind_dir)
+ && kind == svn_node_dir)
{
/* We found an obstructing working copy!
@@ -3027,7 +3022,7 @@ absent_file(const char *path,
void *parent_baton,
apr_pool_t *pool)
{
- return absent_node(path, svn_kind_file, parent_baton, pool);
+ return absent_node(path, svn_node_file, parent_baton, pool);
}
@@ -3037,7 +3032,7 @@ absent_directory(const char *path,
void *parent_baton,
apr_pool_t *pool)
{
- return absent_node(path, svn_kind_dir, parent_baton, pool);
+ return absent_node(path, svn_node_dir, parent_baton, pool);
}
@@ -3054,7 +3049,7 @@ add_file(const char *path,
struct edit_baton *eb = pb->edit_baton;
struct file_baton *fb;
svn_node_kind_t kind = svn_node_none;
- svn_kind_t wc_kind = svn_kind_unknown;
+ svn_node_kind_t wc_kind = svn_node_unknown;
svn_wc__db_status_t status = svn_wc__db_status_normal;
apr_pool_t *scratch_pool;
svn_boolean_t conflicted = FALSE;
@@ -3103,12 +3098,12 @@ add_file(const char *path,
return svn_error_trace(err);
svn_error_clear(err);
- wc_kind = svn_kind_unknown;
+ wc_kind = svn_node_unknown;
conflicted = FALSE;
versioned_locally_and_present = FALSE;
}
- else if (wc_kind == svn_kind_dir
+ else if (wc_kind == svn_node_dir
&& status == svn_wc__db_status_normal)
{
/* !! We found the root of a separate working copy obstructing the wc !!
@@ -3119,8 +3114,8 @@ add_file(const char *path,
The only thing we can do is add a not-present node, to allow
a future update to bring in the new files when the problem is
resolved. */
- apr_hash_set(pb->not_present_files, apr_pstrdup(pb->pool, fb->name),
- APR_HASH_KEY_STRING, (void*)1);
+ svn_hash_sets(pb->not_present_files, apr_pstrdup(pb->pool, fb->name),
+ (void *)1);
SVN_ERR(remember_skipped_tree(eb, fb->local_abspath, pool));
fb->skip_this = TRUE;
@@ -3134,8 +3129,8 @@ add_file(const char *path,
return SVN_NO_ERROR;
}
else if (status == svn_wc__db_status_normal
- && (wc_kind == svn_kind_file
- || wc_kind == svn_kind_symlink))
+ && (wc_kind == svn_node_file
+ || wc_kind == svn_node_symlink))
{
/* We found a file external occupating the place we need in BASE.
@@ -3158,7 +3153,7 @@ add_file(const char *path,
return SVN_NO_ERROR;
}
- else if (wc_kind == svn_kind_unknown)
+ else if (wc_kind == svn_node_unknown)
versioned_locally_and_present = FALSE; /* Tree conflict ACTUAL-only node */
else
versioned_locally_and_present = IS_NODE_PRESENT(status);
@@ -3170,8 +3165,7 @@ add_file(const char *path,
else if (conflicted)
{
if (pb->deletion_conflicts)
- tree_conflict = apr_hash_get(pb->deletion_conflicts, fb->name,
- APR_HASH_KEY_STRING);
+ tree_conflict = svn_hash_gets(pb->deletion_conflicts, fb->name);
if (tree_conflict)
{
@@ -3228,8 +3222,8 @@ add_file(const char *path,
Note that we can safely assume that no present base node exists,
because then we would not have received an add_file.
*/
- apr_hash_set(pb->not_present_files, apr_pstrdup(pb->pool, fb->name),
- APR_HASH_KEY_STRING, (void*)1);
+ svn_hash_sets(pb->not_present_files, apr_pstrdup(pb->pool, fb->name),
+ (void *)1);
do_notification(eb, fb->local_abspath, svn_node_unknown,
svn_wc_notify_skip_conflicted, scratch_pool);
@@ -3269,8 +3263,8 @@ add_file(const char *path,
scratch_pool, scratch_pool));
/* Is there something that is a file? */
- local_is_file = (wc_kind == svn_kind_file
- || wc_kind == svn_kind_symlink);
+ local_is_file = (wc_kind == svn_node_file
+ || wc_kind == svn_node_symlink);
/* Do tree conflict checking if
* - if there is a local copy.
@@ -3329,8 +3323,8 @@ add_file(const char *path,
|| *eb->target_basename == '\0'
|| (strcmp(fb->local_abspath, eb->target_abspath) != 0))
{
- apr_hash_set(pb->not_present_files, apr_pstrdup(pb->pool, fb->name),
- APR_HASH_KEY_STRING, (void*)1);
+ svn_hash_sets(pb->not_present_files, apr_pstrdup(pb->pool, fb->name),
+ (void *)1);
}
if (tree_conflict != NULL)
@@ -3341,7 +3335,7 @@ add_file(const char *path,
fb->old_repos_relpath,
fb->old_revision,
fb->new_relpath,
- svn__node_kind_from_kind(wc_kind),
+ wc_kind,
svn_node_file,
fb->pool, scratch_pool));
@@ -3375,7 +3369,7 @@ open_file(const char *path,
svn_boolean_t conflicted;
svn_boolean_t have_work;
svn_wc__db_status_t status;
- svn_kind_t wc_kind;
+ svn_node_kind_t wc_kind;
svn_skel_t *tree_conflict = NULL;
/* the file_pool can stick around for a *long* time, so we want to use
@@ -3676,8 +3670,7 @@ change_file_prop(void *file_baton,
scratch_pool, scratch_pool));
was_symlink = ((props
- && apr_hash_get(props, SVN_PROP_SPECIAL,
- APR_HASH_KEY_STRING) != NULL)
+ && svn_hash_gets(props, SVN_PROP_SPECIAL) != NULL)
? svn_tristate_true
: svn_tristate_false);
}
@@ -4439,8 +4432,7 @@ close_file(void *file_baton,
/* Any inherited props to be set set for this base node? */
if (eb->wcroot_iprops)
{
- iprops = apr_hash_get(eb->wcroot_iprops, fb->local_abspath,
- APR_HASH_KEY_STRING);
+ iprops = svn_hash_gets(eb->wcroot_iprops, fb->local_abspath);
/* close_edit may also update iprops for switched nodes, catching
those for which close_directory is never called (e.g. a switch
@@ -4448,8 +4440,7 @@ close_file(void *file_baton,
iprops from the hash so as not to set them again in
close_edit. */
if (iprops)
- apr_hash_set(eb->wcroot_iprops, fb->local_abspath,
- APR_HASH_KEY_STRING, NULL);
+ svn_hash_sets(eb->wcroot_iprops, fb->local_abspath, NULL);
}
SVN_ERR(svn_wc__db_base_add_file(eb->db, fb->local_abspath,
@@ -4489,8 +4480,7 @@ close_file(void *file_baton,
/* Deal with the WORKING tree, based on updates to the BASE tree. */
- apr_hash_set(fb->dir_baton->not_present_files, fb->name,
- APR_HASH_KEY_STRING, NULL);
+ svn_hash_sets(fb->dir_baton->not_present_files, fb->name, NULL);
/* Send a notification to the callback function. (Skip notifications
about files which were already notified for another reason.) */
@@ -4807,7 +4797,7 @@ make_editor(svn_revnum_t *target_revisio
depth. In this case the update won't describe additions that would
have been reported if we updated at the ambient depth. */
svn_error_t *err;
- svn_kind_t dir_kind;
+ svn_node_kind_t dir_kind;
svn_wc__db_status_t dir_status;
const char *dir_repos_relpath;
svn_depth_t dir_depth;
@@ -4821,7 +4811,7 @@ make_editor(svn_revnum_t *target_revisio
scratch_pool, scratch_pool);
if (!err
- && dir_kind == svn_kind_dir
+ && dir_kind == svn_node_dir
&& dir_status == svn_wc__db_status_normal)
{
if (dir_depth > depth)
@@ -4837,10 +4827,9 @@ make_editor(svn_revnum_t *target_revisio
edit_pool, scratch_pool));
if (dirents != NULL && apr_hash_count(dirents))
- apr_hash_set(eb->dir_dirents,
- apr_pstrdup(edit_pool, dir_repos_relpath),
- APR_HASH_KEY_STRING,
- dirents);
+ svn_hash_sets(eb->dir_dirents,
+ apr_pstrdup(edit_pool, dir_repos_relpath),
+ dirents);
}
if (depth == svn_depth_immediates)
@@ -4877,7 +4866,7 @@ make_editor(svn_revnum_t *target_revisio
db, child_abspath,
iterpool, iterpool));
- if (dir_kind == svn_kind_dir
+ if (dir_kind == svn_node_dir
&& dir_status == svn_wc__db_status_normal
&& dir_depth > svn_depth_empty)
{
@@ -4894,10 +4883,10 @@ make_editor(svn_revnum_t *target_revisio
edit_pool, iterpool));
if (dirents != NULL && apr_hash_count(dirents))
- apr_hash_set(eb->dir_dirents,
- apr_pstrdup(edit_pool, dir_repos_relpath),
- APR_HASH_KEY_STRING,
- dirents);
+ svn_hash_sets(eb->dir_dirents,
+ apr_pstrdup(edit_pool,
+ dir_repos_relpath),
+ dirents);
}
}
}
@@ -5072,7 +5061,7 @@ svn_wc_add_repos_file4(svn_wc_context_t
svn_wc__db_t *db = wc_ctx->db;
const char *dir_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
svn_wc__db_status_t status;
- svn_kind_t kind;
+ svn_node_kind_t kind;
const char *tmp_text_base_abspath;
svn_checksum_t *new_text_base_md5_checksum;
svn_checksum_t *new_text_base_sha1_checksum;
@@ -5143,7 +5132,7 @@ svn_wc_add_repos_file4(svn_wc_context_t
svn_dirent_local_style(local_abspath,
scratch_pool));
}
- if (kind != svn_kind_dir)
+ if (kind != svn_node_dir)
return svn_error_createf(SVN_ERR_NODE_UNEXPECTED_KIND, NULL,
_("Can't schedule an addition of '%s'"
" below a not-directory node"),
@@ -5342,7 +5331,7 @@ svn_wc__complete_directory_add(svn_wc_co
apr_pool_t *scratch_pool)
{
svn_wc__db_status_t status;
- svn_kind_t kind;
+ svn_node_kind_t kind;
const char *original_repos_relpath;
const char *original_root_url;
const char *original_uuid;
@@ -5364,7 +5353,7 @@ svn_wc__complete_directory_add(svn_wc_co
scratch_pool, scratch_pool));
if (status != svn_wc__db_status_added
- || kind != svn_kind_dir
+ || kind != svn_node_dir
|| had_props
|| props_mod
|| !original_repos_relpath)
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/upgrade.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/upgrade.c?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/upgrade.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/upgrade.c Sat Mar 30 20:02:27 2013
@@ -151,7 +151,7 @@ read_one_proplist(apr_hash_t *all_wcprop
proplist = apr_hash_make(result_pool);
SVN_ERR(svn_hash_read2(proplist, stream, SVN_HASH_TERMINATOR, result_pool));
- apr_hash_set(all_wcprops, name, APR_HASH_KEY_STRING, proplist);
+ svn_hash_sets(all_wcprops, name, proplist);
return SVN_NO_ERROR;
}
@@ -180,8 +180,7 @@ read_many_wcprops(apr_hash_t **all_wcpro
scratch_pool);
SVN_ERR(read_propfile(&wcprops, propfile_abspath, result_pool, iterpool));
if (wcprops != NULL)
- apr_hash_set(*all_wcprops, SVN_WC_ENTRY_THIS_DIR, APR_HASH_KEY_STRING,
- wcprops);
+ svn_hash_sets(*all_wcprops, SVN_WC_ENTRY_THIS_DIR, wcprops);
props_dir_abspath = svn_wc__adm_child(dir_abspath, WCPROPS_SUBDIR_FOR_FILES,
scratch_pool);
@@ -203,9 +202,7 @@ read_many_wcprops(apr_hash_t **all_wcpro
SVN_ERR(read_propfile(&wcprops, propfile_abspath,
result_pool, iterpool));
SVN_ERR_ASSERT(wcprops != NULL);
- apr_hash_set(*all_wcprops,
- apr_pstrdup(result_pool, name), APR_HASH_KEY_STRING,
- wcprops);
+ svn_hash_sets(*all_wcprops, apr_pstrdup(result_pool, name), wcprops);
}
svn_pool_destroy(iterpool);
@@ -701,9 +698,9 @@ read_tree_conflicts(apr_hash_t **conflic
SVN_ERR(svn_wc__deserialize_conflict(&conflict, skel, dir_path,
pool, iterpool));
if (conflict != NULL)
- apr_hash_set(*conflicts, svn_dirent_basename(conflict->local_abspath,
- pool),
- APR_HASH_KEY_STRING, conflict);
+ svn_hash_sets(*conflicts,
+ svn_dirent_basename(conflict->local_abspath, pool),
+ conflict);
}
svn_pool_destroy(iterpool);
@@ -1121,16 +1118,14 @@ migrate_text_bases(apr_hash_t **text_bas
/* Create a new info struct for this versioned file, or fill in the
* existing one if this is the second text-base we've found for it. */
- info = apr_hash_get(*text_bases_info, versioned_file_name,
- APR_HASH_KEY_STRING);
+ info = svn_hash_gets(*text_bases_info, versioned_file_name);
if (info == NULL)
info = apr_pcalloc(result_pool, sizeof (*info));
file_info = (is_revert_base ? &info->revert_base : &info->normal_base);
file_info->sha1_checksum = svn_checksum_dup(sha1_checksum, result_pool);
file_info->md5_checksum = svn_checksum_dup(md5_checksum, result_pool);
- apr_hash_set(*text_bases_info, versioned_file_name, APR_HASH_KEY_STRING,
- info);
+ svn_hash_sets(*text_bases_info, versioned_file_name, info);
}
}
@@ -1710,21 +1705,20 @@ upgrade_to_wcng(void **dir_baton,
SVN_ERR(svn_wc__read_entries_old(&entries, dir_abspath,
scratch_pool, scratch_pool));
- this_dir = apr_hash_get(entries, SVN_WC_ENTRY_THIS_DIR, APR_HASH_KEY_STRING);
+ this_dir = svn_hash_gets(entries, SVN_WC_ENTRY_THIS_DIR);
SVN_ERR(ensure_repos_info(this_dir, dir_abspath,
repos_info_func, repos_info_baton,
repos_cache,
scratch_pool, scratch_pool));
/* Cache repos UUID pairs for when a subdir doesn't have this information */
- if (!apr_hash_get(repos_cache, this_dir->repos, APR_HASH_KEY_STRING))
+ if (!svn_hash_gets(repos_cache, this_dir->repos))
{
apr_pool_t *hash_pool = apr_hash_pool_get(repos_cache);
- apr_hash_set(repos_cache,
- apr_pstrdup(hash_pool, this_dir->repos),
- APR_HASH_KEY_STRING,
- apr_pstrdup(hash_pool, this_dir->uuid));
+ svn_hash_sets(repos_cache,
+ apr_pstrdup(hash_pool, this_dir->repos),
+ apr_pstrdup(hash_pool, this_dir->uuid));
}
old_wcroot_abspath = svn_dirent_get_longest_ancestor(dir_abspath,
@@ -2056,7 +2050,7 @@ is_old_wcroot(const char *local_abspath,
return SVN_NO_ERROR;
}
- entry = apr_hash_get(entries, name, APR_HASH_KEY_STRING);
+ entry = svn_hash_gets(entries, name);
if (!entry
|| entry->absent
|| (entry->deleted && entry->schedule != svn_wc_schedule_add)
@@ -2076,7 +2070,7 @@ is_old_wcroot(const char *local_abspath,
parent_abspath = svn_dirent_join(parent_abspath, name, scratch_pool);
break;
}
- entry = apr_hash_get(entries, name, APR_HASH_KEY_STRING);
+ entry = svn_hash_gets(entries, name);
if (!entry
|| entry->absent
|| (entry->deleted && entry->schedule != svn_wc_schedule_add)
@@ -2196,18 +2190,16 @@ svn_wc_upgrade(svn_wc_context_t *wc_ctx,
SVN_ERR(svn_wc__read_entries_old(&entries, local_abspath,
scratch_pool, scratch_pool));
- this_dir = apr_hash_get(entries, SVN_WC_ENTRY_THIS_DIR,
- APR_HASH_KEY_STRING);
+ this_dir = svn_hash_gets(entries, SVN_WC_ENTRY_THIS_DIR);
SVN_ERR(ensure_repos_info(this_dir, local_abspath, repos_info_func,
repos_info_baton, repos_cache,
scratch_pool, scratch_pool));
/* Cache repos UUID pairs for when a subdir doesn't have this information */
- if (!apr_hash_get(repos_cache, this_dir->repos, APR_HASH_KEY_STRING))
- apr_hash_set(repos_cache,
- apr_pstrdup(scratch_pool, this_dir->repos),
- APR_HASH_KEY_STRING,
- apr_pstrdup(scratch_pool, this_dir->uuid));
+ if (!svn_hash_gets(repos_cache, this_dir->repos))
+ svn_hash_sets(repos_cache,
+ apr_pstrdup(scratch_pool, this_dir->repos),
+ apr_pstrdup(scratch_pool, this_dir->uuid));
/* Create the new DB in the temporary root wc/.svn/tmp/wcng/.svn */
data.root_abspath = svn_dirent_join(svn_wc__adm_child(local_abspath, "tmp",
@@ -2302,19 +2294,19 @@ svn_wc__upgrade_add_external_info(svn_wc
svn_revnum_t def_revision,
apr_pool_t *scratch_pool)
{
- svn_kind_t db_kind;
+ svn_node_kind_t db_kind;
switch (kind)
{
case svn_node_dir:
- db_kind = svn_kind_dir;
+ db_kind = svn_node_dir;
break;
case svn_node_file:
- db_kind = svn_kind_file;
+ db_kind = svn_node_file;
break;
case svn_node_unknown:
- db_kind = svn_kind_unknown;
+ db_kind = svn_node_unknown;
break;
default:
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/util.c?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/util.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/util.c Sat Mar 30 20:02:27 2013
@@ -542,7 +542,7 @@ svn_wc__status2_from_3(svn_wc_status2_t
svn_error_t *
-svn_wc__fetch_kind_func(svn_kind_t *kind,
+svn_wc__fetch_kind_func(svn_node_kind_t *kind,
void *baton,
const char *path,
svn_revnum_t base_revision,
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/wc-queries.sql
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/wc-queries.sql?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/wc-queries.sql (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/wc-queries.sql Sat Mar 30 20:02:27 2013
@@ -919,6 +919,27 @@ INSERT OR REPLACE INTO nodes (
parent_relpath, presence, kind)
VALUES(?1, ?2, ?3, ?4, MAP_BASE_DELETED, ?5)
+-- STMT_DELETE_NO_LOWER_LAYER
+DELETE FROM nodes
+ WHERE wc_id = ?1
+ AND (local_relpath = ?2 OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2))
+ AND op_depth = ?3
+ AND NOT EXISTS (SELECT 1 FROM nodes n
+ WHERE n.wc_id = ?1
+ AND n.local_relpath = nodes.local_relpath
+ AND n.op_depth = ?4
+ AND n.presence IN (MAP_NORMAL, MAP_INCOMPLETE))
+
+-- STMT_REPLACE_WITH_BASE_DELETED
+INSERT OR REPLACE INTO nodes (wc_id, local_relpath, op_depth, parent_relpath,
+ kind, moved_to, presence)
+SELECT wc_id, local_relpath, op_depth, parent_relpath,
+ kind, moved_to, MAP_BASE_DELETED
+ FROM nodes
+ WHERE wc_id = ?1
+ AND (local_relpath = ?2 OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2))
+ AND op_depth = ?3
+
/* If this query is updated, STMT_INSERT_DELETE_LIST should too. */
-- STMT_INSERT_DELETE_FROM_NODE_RECURSIVE
INSERT INTO nodes (
@@ -931,6 +952,7 @@ WHERE wc_id = ?1
OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2))
AND op_depth = ?3
AND presence NOT IN (MAP_BASE_DELETED, MAP_NOT_PRESENT, MAP_EXCLUDED, MAP_SERVER_EXCLUDED)
+ AND file_external IS NULL
-- STMT_INSERT_WORKING_NODE_FROM_BASE_COPY
INSERT INTO nodes (
@@ -1222,10 +1244,15 @@ INSERT INTO target_prop_cache(local_relp
AND a.local_relpath = n.local_relpath),
n.properties)
FROM targets_list AS t
- JOIN nodes_current AS n ON t.wc_id= n.wc_id
- AND t.local_relpath = n.local_relpath
+ JOIN nodes AS n
+ ON n.wc_id = ?1
+ AND n.local_relpath = t.local_relpath
+ AND n.op_depth = (SELECT MAX(op_depth) FROM nodes AS n3
+ WHERE n3.wc_id = ?1
+ AND n3.local_relpath = t.local_relpath)
WHERE t.wc_id = ?1
AND (presence=MAP_NORMAL OR presence=MAP_INCOMPLETE)
+ ORDER BY t.local_relpath
-- STMT_CACHE_TARGET_PRISTINE_PROPS
INSERT INTO target_prop_cache(local_relpath, kind, properties)
@@ -1239,12 +1266,17 @@ INSERT INTO target_prop_cache(local_relp
ORDER BY p.op_depth DESC /* LIMIT 1 */)
ELSE properties END
FROM targets_list AS t
- JOIN nodes_current AS n ON t.wc_id= n.wc_id
- AND t.local_relpath = n.local_relpath
+ JOIN nodes AS n
+ ON n.wc_id = ?1
+ AND n.local_relpath = t.local_relpath
+ AND n.op_depth = (SELECT MAX(op_depth) FROM nodes AS n3
+ WHERE n3.wc_id = ?1
+ AND n3.local_relpath = t.local_relpath)
WHERE t.wc_id = ?1
AND (presence = MAP_NORMAL
OR presence = MAP_INCOMPLETE
OR presence = MAP_BASE_DELETED)
+ ORDER BY t.local_relpath
-- STMT_SELECT_ALL_TARGET_PROP_CACHE
SELECT local_relpath, properties FROM target_prop_cache
@@ -1368,6 +1400,7 @@ WHERE wc_id = ?1
WHERE s.wc_id = ?1
AND s.local_relpath = n.local_relpath)
AND presence NOT IN (MAP_BASE_DELETED, MAP_NOT_PRESENT, MAP_EXCLUDED, MAP_SERVER_EXCLUDED)
+ AND file_external IS NULL
-- STMT_SELECT_DELETE_LIST
SELECT local_relpath FROM delete_list
Modified: subversion/branches/fsfs-format7/subversion/libsvn_wc/wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_wc/wc.h?rev=1462850&r1=1462849&r2=1462850&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_wc/wc.h (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_wc/wc.h Sat Mar 30 20:02:27 2013
@@ -388,10 +388,12 @@ svn_wc__internal_file_modified_p(svn_boo
apr_pool_t *scratch_pool);
-/* Prepare to merge a file content change into the working copy. This
- does not merge properties; see svn_wc__merge_props() for that. This
- does not change the working file on disk; it returns work items that
- will replace the working file on disk when they are run.
+/* Prepare to merge a file content change into the working copy.
+
+ This does not merge properties; see svn_wc__merge_props() for that.
+ This does not necessarily change the file TARGET_ABSPATH on disk; it
+ may instead return work items that will replace the file on disk when
+ they are run. ### Can we be more consistent about this?
Merge the difference between LEFT_ABSPATH and RIGHT_ABSPATH into
TARGET_ABSPATH.
@@ -740,7 +742,7 @@ struct svn_wc__shim_fetch_baton_t
/* Using a BATON of struct shim_fetch_baton, return KIND for PATH. */
svn_error_t *
-svn_wc__fetch_kind_func(svn_kind_t *kind,
+svn_wc__fetch_kind_func(svn_node_kind_t *kind,
void *baton,
const char *path,
svn_revnum_t base_revision,