You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2011/01/20 20:07:58 UTC
svn commit: r1061463 - in
/subversion/branches/uris-as-urls/subversion/libsvn_client: info.c list.c
locking_commands.c log.c merge.c mergeinfo.c prop_commands.c ra.c
relocate.c status.c switch.c util.c
Author: cmpilato
Date: Thu Jan 20 19:07:57 2011
New Revision: 1061463
URL: http://svn.apache.org/viewvc?rev=1061463&view=rev
Log:
On the 'uris-as-urls' branch, review and correct some use of the
svn_uri_* APIs. (One step of many similar ones.)
* subversion/libsvn_client/info.c
(push_dir_info, svn_client_info3): Review, correct (as needed), and
rename uses of the svn_uri_* API.
* subversion/libsvn_client/list.c
(svn_client_list2): (Same as above.)
* subversion/libsvn_client/locking_commands.c
(organize_lock_targets): (Same as above.)
* subversion/libsvn_client/log.c
(svn_client_log5): (Same as above.)
* subversion/libsvn_client/merge.c
(make_conflict_versions, merge_reintegrate_locked): (Same as above.)
* subversion/libsvn_client/mergeinfo.c
(svn_client_mergeinfo_get_merged): (Same as above.)
* subversion/libsvn_client/ra.c
(svn_client__repos_locations): (Same as above.)
* subversion/libsvn_client/relocate.c
(validator_func): (Same as above.)
* subversion/libsvn_client/status.c
(reporter_link_path): (Same as above.)
* subversion/libsvn_client/switch.c
(switch_internal): (Same as above.)
* subversion/libsvn_client/util.c
(svn_client__path_relative_to_root): (Same as above.)
* subversion/libsvn_client/prop_commands.c
(remote_propget, remote_proplist): (Same as above; also fixes some
preexisting URI-encoding bugs.)
Modified:
subversion/branches/uris-as-urls/subversion/libsvn_client/info.c
subversion/branches/uris-as-urls/subversion/libsvn_client/list.c
subversion/branches/uris-as-urls/subversion/libsvn_client/locking_commands.c
subversion/branches/uris-as-urls/subversion/libsvn_client/log.c
subversion/branches/uris-as-urls/subversion/libsvn_client/merge.c
subversion/branches/uris-as-urls/subversion/libsvn_client/mergeinfo.c
subversion/branches/uris-as-urls/subversion/libsvn_client/prop_commands.c
subversion/branches/uris-as-urls/subversion/libsvn_client/ra.c
subversion/branches/uris-as-urls/subversion/libsvn_client/relocate.c
subversion/branches/uris-as-urls/subversion/libsvn_client/status.c
subversion/branches/uris-as-urls/subversion/libsvn_client/switch.c
subversion/branches/uris-as-urls/subversion/libsvn_client/util.c
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/info.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/info.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/info.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/info.c Thu Jan 20 19:07:57 2011
@@ -291,7 +291,7 @@ push_dir_info(svn_ra_session_t *ra_sessi
path = svn_relpath_join(dir, name, subpool);
URL = svn_path_url_add_component2(session_URL, name, subpool);
- fs_path = svn_uri_is_child(repos_root, URL, subpool);
+ fs_path = svn_url_is_child(repos_root, URL, subpool);
fs_path = apr_pstrcat(subpool, "/", fs_path, (char *)NULL);
fs_path = svn_path_uri_decode(fs_path, subpool);
@@ -536,7 +536,7 @@ svn_client_info3(const char *abspath_or_
SVN_ERR(svn_ra_get_repos_root2(ra_session, &repos_root_URL, pool));
SVN_ERR(svn_ra_get_uuid2(ra_session, &repos_UUID, pool));
- svn_uri_split(&parent_url, &base_name, url, pool);
+ svn_url_split(&parent_url, &base_name, url, pool);
base_name = svn_path_uri_decode(base_name, pool);
/* Get the dirent for the URL itself. */
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/list.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/list.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/list.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/list.c Thu Jan 20 19:07:57 2011
@@ -179,7 +179,7 @@ svn_client_list2(const char *path_or_url
/* Open another session to the path's parent. This server
doesn't support svn_ra_reparent anyway, so don't try it. */
- svn_uri_split(&parent_url, &base_name, url, pool);
+ svn_url_split(&parent_url, &base_name, url, pool);
/* 'base_name' is now the last component of an URL, but we want
to use it as a plain file name. Therefore, we must URI-decode
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/locking_commands.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/locking_commands.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/locking_commands.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/locking_commands.c Thu Jan 20 19:07:57 2011
@@ -191,7 +191,7 @@ organize_lock_targets(const char **commo
/* Get the common parent and all paths */
if (url_mode)
- SVN_ERR(svn_uri_condense_targets(common_parent_url, &rel_targets,
+ SVN_ERR(svn_url_condense_targets(common_parent_url, &rel_targets,
targets, TRUE, result_pool,
scratch_pool));
else
@@ -206,7 +206,7 @@ organize_lock_targets(const char **commo
{
const char *parent, *base;
if (url_mode)
- svn_uri_split(&parent, &base, *common_parent_url, result_pool);
+ svn_url_split(&parent, &base, *common_parent_url, result_pool);
else
svn_dirent_split(&parent, &base, *common_parent_url, result_pool);
@@ -271,15 +271,15 @@ organize_lock_targets(const char **commo
}
/* Condense our absolute urls and get the relative urls. */
- SVN_ERR(svn_uri_condense_targets(&common_url, &rel_urls, urls,
+ SVN_ERR(svn_url_condense_targets(&common_url, &rel_urls, urls,
FALSE, result_pool, scratch_pool));
/* svn_uri_condense_targets leaves URLs empty if TARGETS only
had 1 member, so we special case that (again). */
if (apr_is_empty_array(rel_urls))
{
- const char *base_name = svn_uri_basename(common_url, scratch_pool);
- common_url = svn_uri_dirname(common_url, result_pool);
+ const char *base_name = svn_url_basename(common_url, scratch_pool);
+ common_url = svn_url_dirname(common_url, result_pool);
APR_ARRAY_PUSH(rel_urls, const char *) = base_name;
}
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/log.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/log.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/log.c Thu Jan 20 19:07:57 2011
@@ -458,7 +458,7 @@ svn_client_log5(const apr_array_header_t
return SVN_NO_ERROR;
/* Find the base URL and condensed targets relative to it. */
- SVN_ERR(svn_uri_condense_targets(&url_or_path, &condensed_targets,
+ SVN_ERR(svn_url_condense_targets(&url_or_path, &condensed_targets,
target_urls, TRUE, pool, iterpool));
if (condensed_targets->nelts == 0)
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/merge.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/merge.c Thu Jan 20 19:07:57 2011
@@ -489,12 +489,12 @@ make_conflict_versions(const svn_wc_conf
*left = svn_wc_conflict_version_create(
src_repos_url,
- svn_uri_is_child(src_repos_url, left_url, merge_b->pool),
+ svn_url_is_child(src_repos_url, left_url, merge_b->pool),
merge_b->merge_source.rev1, node_kind, merge_b->pool);
*right = svn_wc_conflict_version_create(
src_repos_url,
- svn_uri_is_child(src_repos_url, right_url, merge_b->pool),
+ svn_url_is_child(src_repos_url, right_url, merge_b->pool),
merge_b->merge_source.rev2, node_kind, merge_b->pool);
return SVN_NO_ERROR;
@@ -10419,7 +10419,7 @@ merge_reintegrate_locked(const char *sou
(with regard to the WC). */
rev1 = target_base_rev;
- source_repos_rel_path = svn_uri_skip_ancestor(wc_repos_root, url2);
+ source_repos_rel_path = svn_url_skip_ancestor(wc_repos_root, url2);
source_repos_rel_path = svn_path_uri_decode(source_repos_rel_path,
scratch_pool);
SVN_ERR(svn_client__path_relative_to_root(&target_repos_rel_path,
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/mergeinfo.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/mergeinfo.c Thu Jan 20 19:07:57 2011
@@ -1667,11 +1667,9 @@ svn_client_mergeinfo_get_merged(apr_hash
{
const char *key = svn__apr_hash_index_key(hi);
void *val = svn__apr_hash_index_val(hi);
- const char *source_url;
-
- source_url = svn_path_uri_encode(key, pool);
- source_url = svn_uri_join(repos_root, source_url + 1, pool);
- apr_hash_set(full_path_mergeinfo, source_url,
+
+ apr_hash_set(full_path_mergeinfo,
+ svn_path_url_add_component2(repos_root, key + 1, pool),
APR_HASH_KEY_STRING, val);
}
*mergeinfo_p = full_path_mergeinfo;
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/prop_commands.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/prop_commands.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/prop_commands.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/prop_commands.c Thu Jan 20 19:07:57 2011
@@ -746,6 +746,9 @@ remote_propget(apr_hash_t *props,
{
apr_hash_t *dirents;
apr_hash_t *prop_hash;
+ const svn_string_t *val;
+ const char *target_full_url =
+ svn_path_url_add_component2(target_prefix, target_relative, work_pool);
if (kind == svn_node_dir)
{
@@ -761,29 +764,22 @@ remote_propget(apr_hash_t *props,
}
else if (kind == svn_node_none)
{
- return svn_error_createf
- (SVN_ERR_ENTRY_NOT_FOUND, NULL,
- _("'%s' does not exist in revision %ld"),
- svn_uri_join(target_prefix, target_relative, work_pool), revnum);
+ return svn_error_createf(SVN_ERR_ENTRY_NOT_FOUND, NULL,
+ _("'%s' does not exist in revision %ld"),
+ target_full_url, revnum);
}
else
{
- return svn_error_createf
- (SVN_ERR_NODE_UNKNOWN_KIND, NULL,
- _("Unknown node kind for '%s'"),
- svn_uri_join(target_prefix, target_relative, work_pool));
- }
-
- {
- svn_string_t *val = apr_hash_get(prop_hash, propname,
- APR_HASH_KEY_STRING);
- if (val)
- {
- apr_hash_set(props,
- svn_uri_join(target_prefix, target_relative, perm_pool),
- APR_HASH_KEY_STRING, svn_string_dup(val, perm_pool));
- }
- }
+ return svn_error_createf(SVN_ERR_NODE_UNKNOWN_KIND, NULL,
+ _("Unknown node kind for '%s'"),
+ target_full_url);
+ }
+
+ if ((val = apr_hash_get(prop_hash, propname, APR_HASH_KEY_STRING)))
+ {
+ apr_hash_set(props, apr_pstrdup(perm_pool, target_full_url),
+ APR_HASH_KEY_STRING, svn_string_dup(val, perm_pool));
+ }
if (depth >= svn_depth_files
&& kind == svn_node_dir
@@ -1071,6 +1067,8 @@ remote_proplist(const char *target_prefi
apr_hash_t *dirents;
apr_hash_t *prop_hash, *final_hash;
apr_hash_index_t *hi;
+ const char *target_full_url =
+ svn_path_url_add_component2(target_prefix, target_relative, scratchpool);
if (kind == svn_node_dir)
{
@@ -1086,10 +1084,9 @@ remote_proplist(const char *target_prefi
}
else
{
- return svn_error_createf
- (SVN_ERR_NODE_UNKNOWN_KIND, NULL,
- _("Unknown node kind for '%s'"),
- svn_uri_join(target_prefix, target_relative, pool));
+ return svn_error_createf(SVN_ERR_NODE_UNKNOWN_KIND, NULL,
+ _("Unknown node kind for '%s'"),
+ target_full_url);
}
/* Filter out non-regular properties, since the RA layer returns all
@@ -1115,9 +1112,7 @@ remote_proplist(const char *target_prefi
}
}
- call_receiver(svn_uri_join(target_prefix, target_relative, scratchpool),
- final_hash, receiver, receiver_baton,
- pool);
+ call_receiver(target_full_url, final_hash, receiver, receiver_baton, pool);
if (depth > svn_depth_empty
&& (kind == svn_node_dir) && (apr_hash_count(dirents) > 0))
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/ra.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/ra.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/ra.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/ra.c Thu Jan 20 19:07:57 2011
@@ -759,20 +759,10 @@ svn_client__repos_locations(const char *
"repository or refers to an unrelated object"),
path_or_url_local_style(path, pool), end_revnum);
- /* Repository paths might be absolute, but we want to treat them as
- relative.
- ### Aren't they always absolute? */
- if (start_path[0] == '/')
- start_path = start_path + 1;
- if (end_path[0] == '/')
- end_path = end_path + 1;
-
/* Set our return variables */
- *start_url = svn_uri_join(repos_url, svn_path_uri_encode(start_path,
- pool), pool);
+ *start_url = svn_path_url_add_component2(repos_url, start_path + 1, pool);
if (end->kind != svn_opt_revision_unspecified)
- *end_url = svn_uri_join(repos_url, svn_path_uri_encode(end_path,
- pool), pool);
+ *end_url = svn_path_url_add_component2(repos_url, end_path + 1, pool);
svn_pool_destroy(subpool);
return SVN_NO_ERROR;
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/relocate.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/relocate.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/relocate.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/relocate.c Thu Jan 20 19:07:57 2011
@@ -75,7 +75,7 @@ validator_func(void *baton,
{
struct url_uuid_t *uu = &APR_ARRAY_IDX(uuids, i,
struct url_uuid_t);
- if (svn_uri_is_ancestor(uu->root, url))
+ if (svn_url_is_ancestor(uu->root, url))
{
url_uuid = uu;
break;
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/status.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/status.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/status.c Thu Jan 20 19:07:57 2011
@@ -163,7 +163,7 @@ reporter_link_path(void *report_baton, c
const char *ancestor;
apr_size_t len;
- ancestor = svn_uri_get_longest_ancestor(url, rb->ancestor, pool);
+ ancestor = svn_url_get_longest_ancestor(url, rb->ancestor, pool);
/* If we got a shorter ancestor, truncate our current ancestor.
Note that svn_dirent_get_longest_ancestor will allocate its return
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/switch.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/switch.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/switch.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/switch.c Thu Jan 20 19:07:57 2011
@@ -169,12 +169,10 @@ switch_internal(svn_revnum_t *result_rev
/* Disallow a switch operation to change the repository root of the
target. */
- if (! svn_uri_is_ancestor(source_root, url))
- return svn_error_createf
- (SVN_ERR_WC_INVALID_SWITCH, NULL,
- _("'%s'\n"
- "is not the same repository as\n"
- "'%s'"), url, source_root);
+ if (! svn_url_is_ancestor(source_root, url))
+ return svn_error_createf(SVN_ERR_WC_INVALID_SWITCH, NULL,
+ _("'%s'\nis not the same repository as\n'%s'"),
+ url, source_root);
SVN_ERR(svn_ra_reparent(ra_session, url, pool));
Modified: subversion/branches/uris-as-urls/subversion/libsvn_client/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/uris-as-urls/subversion/libsvn_client/util.c?rev=1061463&r1=1061462&r2=1061463&view=diff
==============================================================================
--- subversion/branches/uris-as-urls/subversion/libsvn_client/util.c (original)
+++ subversion/branches/uris-as-urls/subversion/libsvn_client/util.c Thu Jan 20 19:07:57 2011
@@ -208,7 +208,7 @@ svn_client__path_relative_to_root(const
back from this, the two URLs have no commonality (which
should only happen if our caller provided us a REPOS_ROOT and
a PATH_OR_URL of something not in that repository). */
- const char *rel_url = svn_uri_is_child(repos_root, abspath_or_url,
+ const char *rel_url = svn_url_is_child(repos_root, abspath_or_url,
scratch_pool);
if (! rel_url)
{
@@ -219,8 +219,7 @@ svn_client__path_relative_to_root(const
}
rel_url = svn_path_uri_decode(rel_url, result_pool);
*rel_path = include_leading_slash
- ? apr_pstrcat(result_pool, "/", rel_url,
- (char *)NULL)
+ ? apr_pstrcat(result_pool, "/", rel_url, NULL)
: rel_url;
}