Eh? Aren't all parameters *supposed* to be canonical URLs to start
with? (just like all paths)
Or do we say that paths/urls are internal-format, but not necessarily canonical?
On Fri, Feb 27, 2009 at 22:50, Bert Huijben <rhuijben_at_sharpsvn.net> wrote:
> Author: rhuijben
> Date: Fri Feb 27 13:50:27 2009
> New Revision: 36202
>
> Log:
> Make libsvn_ra_serf canonicalize urls it receives to allow it to
> use svn_path_url_add_component2. This resolves all obsolete warnings
> in libsvn_ra_serf.
>
> * subversion/libsvn_ra_serf/blame.c
> Â (svn_ra_serf__get_file_revs): In all these ...
> * subversion/libsvn_ra_serf/commit.c
> Â (global): Include svn_dirent_uri.h.
> Â (handle_checkout, checkout_dir, get_version_url, checkout_file,
> Â setup_copy_dir_headers, post_headers_iterator_callback, open_root,
> Â delete_entry, add_directory, open_directory, add_file, open_file,
> Â close_file): ...
> * subversion/libsvn_ra_serf/getlocations.c
> Â (svn_ra_serf__get_locations): ...
> * subversion/libsvn_ra_serf/getlocationsegments.c
> Â (svn_ra_serf__get_location_segments): ...
> * subversion/libsvn_ra_serf/getlocks.c
> Â (svn_ra_serf__get_locks): ...
> * subversion/libsvn_ra_serf/get_deleted_rev.c
> Â (svn_ra_serf__get_deleted_rev): ...
> * subversion/libsvn_ra_serf/locks.c
> Â (svn_ra_serf__get_lock): ...
> * subversion/libsvn_ra_serf/log.c
> Â (svn_ra_serf__get_log): ...
> * subversion/libsvn_ra_serf/mergeinfo.c
> Â (svn_ra_serf__get_mergeinfo): ...
> * subversion/libsvn_ra_serf/options.c
> Â (global): Include svn_dirent_uri.h.
> Â (end_options): ...
> * subversion/libsvn_ra_serf/property.c
> Â (global): Include svn_dirent_uri.h.
> Â (svn_ra_serf__get_baseline_info): ...
> * subversion/libsvn_ra_serf/serf.c
> Â (fetch_path_props, svn_ra_serf__get_dir): ...
> * subversion/libsvn_ra_serf/update.c
> Â (svn_ra_serf__get_file): ... functions, make sure incoming and generated
> Â Â urls are always canonical and use svn_path_url_add_component2() that
> Â Â assumes the components are already canonical.
>
> Modified:
> Â trunk/subversion/libsvn_ra_serf/blame.c
> Â trunk/subversion/libsvn_ra_serf/commit.c
> Â trunk/subversion/libsvn_ra_serf/get_deleted_rev.c
> Â trunk/subversion/libsvn_ra_serf/getlocations.c
> Â trunk/subversion/libsvn_ra_serf/getlocationsegments.c
> Â trunk/subversion/libsvn_ra_serf/getlocks.c
> Â trunk/subversion/libsvn_ra_serf/locks.c
> Â trunk/subversion/libsvn_ra_serf/log.c
> Â trunk/subversion/libsvn_ra_serf/mergeinfo.c
> Â trunk/subversion/libsvn_ra_serf/options.c
> Â trunk/subversion/libsvn_ra_serf/property.c
> Â trunk/subversion/libsvn_ra_serf/serf.c
> Â trunk/subversion/libsvn_ra_serf/update.c
>
> Modified: trunk/subversion/libsvn_ra_serf/blame.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/blame.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/blame.c   Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/blame.c   Fri Feb 27 13:50:27 2009     (r36202)
> @@ -435,7 +435,7 @@ svn_ra_serf__get_file_revs(svn_ra_sessio
> Â SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â NULL, session->repos_url.path,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â end, NULL, pool));
> - Â req_url = svn_path_url_add_component(basecoll_url, relative_url, pool);
> + Â req_url = svn_path_url_add_component2(basecoll_url, relative_url, pool);
>
> Â handler = apr_pcalloc(pool, sizeof(*handler));
>
>
> Modified: trunk/subversion/libsvn_ra_serf/commit.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/commit.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/commit.c   Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/commit.c   Fri Feb 27 13:50:27 2009     (r36202)
> @@ -30,6 +30,7 @@
> Â #include "svn_delta.h"
> Â #include "svn_base64.h"
> Â #include "svn_version.h"
> +#include "svn_dirent_uri.h"
> Â #include "svn_path.h"
> Â #include "svn_props.h"
>
> @@ -280,7 +281,7 @@ handle_checkout(serf_request_t *request,
> Â Â Â Â }
> Â Â Â apr_uri_parse(pool, location, &uri);
>
> - Â Â Â ctx->resource_url = apr_pstrdup(ctx->pool, uri.path);
> + Â Â Â ctx->resource_url = svn_uri_canonicalize(uri.path, ctx->pool);
> Â Â }
>
> Â return status;
> @@ -348,9 +349,9 @@ checkout_dir(dir_context_t *dir)
> Â Â Â Â Â dir->checkout->activity_url = dir->commit->activity_url;
> Â Â Â Â Â dir->checkout->activity_url_len = dir->commit->activity_url_len;
> Â Â Â Â Â dir->checkout->resource_url =
> - Â Â Â Â Â Â svn_path_url_add_component(dir->parent_dir->checkout->resource_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â svn_path_basename(dir->name, dir->pool),
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â dir->pool);
> + Â Â Â Â Â Â svn_path_url_add_component2(dir->parent_dir->checkout->resource_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â svn_path_basename(dir->name, dir->pool),
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â dir->pool);
>
> Â Â Â Â Â apr_hash_set(dir->commit->copied_entries,
> Â Â Â Â Â Â Â Â Â Â Â Â apr_pstrdup(dir->commit->pool, dir->name),
> @@ -456,7 +457,7 @@ get_version_url(const char **checked_in_
>
> Â Â Â if (current_version)
> Â Â Â Â {
> - Â Â Â Â Â *checked_in_url = current_version->data;
> + Â Â Â Â Â *checked_in_url = svn_uri_canonicalize(current_version->data, pool);
> Â Â Â Â Â return SVN_NO_ERROR;
> Â Â Â Â }
> Â Â }
> @@ -490,9 +491,11 @@ get_version_url(const char **checked_in_
> Â Â Â Â return svn_error_createf(SVN_ERR_RA_DAV_REQUEST_FAILED, NULL,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â _("Path '%s' not present"),
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â session->repos_url.path);
> +
> + Â Â Â root_checkout = svn_uri_canonicalize(root_checkout, pool);
> Â Â }
>
> - Â *checked_in_url = svn_path_url_add_component(root_checkout, relpath, pool);
> + Â *checked_in_url = svn_path_url_add_component2(root_checkout, relpath, pool);
>
> Â return SVN_NO_ERROR;
> Â }
> @@ -528,9 +531,9 @@ checkout_file(file_context_t *file)
> Â Â Â Â Â file->checkout->activity_url_len = file->commit->activity_url_len;
> Â Â Â Â Â diff_path = svn_path_is_child(dir->name, file->name, file->pool);
> Â Â Â Â Â file->checkout->resource_url =
> - Â Â Â Â Â Â svn_path_url_add_component(dir->checkout->resource_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â diff_path,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â file->pool);
> + Â Â Â Â Â Â svn_path_url_add_component2(dir->checkout->resource_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â diff_path,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â file->pool);
> Â Â Â Â Â return SVN_NO_ERROR;
> Â Â Â Â }
> Â Â }
> @@ -875,9 +878,9 @@ setup_copy_dir_headers(serf_bucket_t *he
> Â /* The Dest URI must be absolute. Â Bummer. */
> Â uri = dir->commit->session->repos_url;
> Â uri.path =
> - Â Â Â (char*)svn_path_url_add_component(dir->parent_dir->checkout->resource_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â svn_path_basename(dir->name, pool),
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â pool);
> + Â Â Â (char*)svn_path_url_add_component2(dir->parent_dir->checkout->resource_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â svn_path_basename(dir->name, pool),
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â pool);
>
> Â absolute_uri = apr_uri_unparse(pool, &uri, 0);
>
> @@ -995,9 +998,9 @@ post_headers_iterator_callback(void *bat
> Â Â Â Â Â given, and store the whole lot of it in the commit context. Â */
> Â Â Â prc_cc->txn_name = apr_pstrdup(prc_cc->pool, val);
> Â Â Â prc_cc->txn_url =
> - Â Â Â Â svn_path_url_add_component(sess->txn_stub, val, prc_cc->pool);
> + Â Â Â Â svn_path_url_add_component2(sess->txn_stub, val, prc_cc->pool);
> Â Â Â prc_cc->txn_root_url =
> - Â Â Â Â svn_path_url_add_component(sess->txn_root_stub, val, prc_cc->pool);
> + Â Â Â Â svn_path_url_add_component2(sess->txn_root_stub, val, prc_cc->pool);
> Â Â }
> Â return 0;
> Â }
> @@ -1088,8 +1091,8 @@ open_root(void *edit_baton,
> Â Â Â SVN_ERR(svn_ra_serf__get_relative_path(&rel_path,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ctx->session->repos_url.path,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ctx->session, NULL, dir_pool));
> - Â Â Â ctx->txn_root_url = svn_path_url_add_component(ctx->txn_root_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â rel_path, ctx->pool);
> + Â Â Â ctx->txn_root_url = svn_path_url_add_component2(ctx->txn_root_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â rel_path, ctx->pool);
>
> Â Â Â /* Build our directory baton. */
> Â Â Â dir = apr_pcalloc(dir_pool, sizeof(*dir));
> @@ -1135,8 +1138,8 @@ open_root(void *edit_baton,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "requested activity-collection-set value"));
>
> Â Â Â ctx->activity_url =
> - Â Â Â Â svn_path_url_add_component(activity_str, svn_uuid_generate(ctx->pool),
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ctx->pool);
> + Â Â Â Â svn_path_url_add_component2(activity_str, svn_uuid_generate(ctx->pool),
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ctx->pool);
> Â Â Â ctx->activity_url_len = strlen(ctx->activity_url);
>
> Â Â Â /* Create our activity URL now on the server. */
> @@ -1269,16 +1272,16 @@ delete_entry(const char *path,
>
> Â if (USING_HTTPV2_COMMIT_SUPPORT(dir->commit))
> Â Â {
> - Â Â Â delete_target = svn_path_url_add_component(dir->commit->txn_root_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, dir->pool);
> + Â Â Â delete_target = svn_path_url_add_component2(dir->commit->txn_root_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, dir->pool);
> Â Â }
> Â else
> Â Â {
> Â Â Â /* Ensure our directory has been checked out */
> Â Â Â SVN_ERR(checkout_dir(dir));
> - Â Â Â delete_target = svn_path_url_add_component(dir->checkout->resource_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â svn_path_basename(path, pool),
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â pool);
> + Â Â Â delete_target = svn_path_url_add_component2(dir->checkout->resource_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â svn_path_basename(path, pool),
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â pool);
> Â Â }
>
> Â /* DELETE our entry */
> @@ -1373,8 +1376,8 @@ add_directory(const char *path,
>
> Â if (USING_HTTPV2_COMMIT_SUPPORT(dir->commit))
> Â Â {
> - Â Â Â dir->url = svn_path_url_add_component(parent->commit->txn_root_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, dir->pool);
> + Â Â Â dir->url = svn_path_url_add_component2(parent->commit->txn_root_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, dir->pool);
> Â Â Â mkcol_target = dir->url;
> Â Â }
> Â else
> @@ -1382,10 +1385,10 @@ add_directory(const char *path,
> Â Â Â /* Ensure our parent is checked out. */
> Â Â Â SVN_ERR(checkout_dir(parent));
>
> - Â Â Â dir->url = svn_path_url_add_component(parent->commit->checked_in_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, dir->pool);
> - Â Â Â mkcol_target = svn_path_url_add_component(parent->checkout->resource_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â svn_path_basename(path,
> + Â Â Â dir->url = svn_path_url_add_component2(parent->commit->checked_in_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, dir->pool);
> + Â Â Â mkcol_target = svn_path_url_add_component2(parent->checkout->resource_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â svn_path_basename(path,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â dir->pool),
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â dir->pool);
> Â Â }
> @@ -1421,8 +1424,8 @@ add_directory(const char *path,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â dir->commit->conn,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â uri.path, dir->copy_revision,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â NULL, dir_pool));
> - Â Â Â req_url = svn_path_url_add_component(basecoll_url, rel_copy_path,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â dir->pool);
> + Â Â Â req_url = svn_path_url_add_component2(basecoll_url, rel_copy_path,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â dir->pool);
>
> Â Â Â handler->method = "COPY";
> Â Â Â handler->path = req_url;
> @@ -1478,8 +1481,8 @@ open_directory(const char *path,
>
> Â if (USING_HTTPV2_COMMIT_SUPPORT(dir->commit))
> Â Â {
> - Â Â Â dir->url = svn_path_url_add_component(parent->commit->txn_root_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, dir->pool);
> + Â Â Â dir->url = svn_path_url_add_component2(parent->commit->txn_root_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, dir->pool);
> Â Â }
> Â else
> Â Â {
> @@ -1627,8 +1630,8 @@ add_file(const char *path,
> Â Â Â transaction root tree for this thing. Â */
> Â if (USING_HTTPV2_COMMIT_SUPPORT(dir->commit))
> Â Â {
> - Â Â Â new_file->url = svn_path_url_add_component(dir->commit->txn_root_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, new_file->pool);
> + Â Â Â new_file->url = svn_path_url_add_component2(dir->commit->txn_root_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, new_file->pool);
> Â Â Â head_target_url = new_file->url;
> Â Â }
> Â /* Otherwise, we'll look at the public HEAD URL, but only if we
> @@ -1642,8 +1645,8 @@ add_file(const char *path,
> Â Â Â SVN_ERR(checkout_dir(dir));
>
> Â Â Â new_file->url =
> - Â Â Â Â svn_path_url_add_component(dir->checkout->resource_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â svn_path_basename(path, new_file->pool),
> + Â Â Â Â svn_path_url_add_component2(dir->checkout->resource_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â svn_path_basename(path, new_file->pool),
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â new_file->pool);
>
> Â Â Â while (deleted_parent && deleted_parent[0] != '\0')
> @@ -1660,8 +1663,8 @@ add_file(const char *path,
> Â Â Â Â Â Â Â (deleted_parent && deleted_parent[0] != '\0')))
> Â Â Â Â {
> Â Â Â Â Â head_target_url =
> - Â Â Â Â Â Â svn_path_url_add_component(dir->commit->session->repos_url.path,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, new_file->pool);
> + Â Â Â Â Â Â svn_path_url_add_component2(dir->commit->session->repos_url.path,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, new_file->pool);
> Â Â Â Â }
> Â Â }
>
> @@ -1723,8 +1726,8 @@ open_file(const char *path,
>
> Â if (USING_HTTPV2_COMMIT_SUPPORT(parent->commit))
> Â Â {
> - Â Â Â new_file->url = svn_path_url_add_component(parent->commit->txn_root_url,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, new_file->pool);
> + Â Â Â new_file->url = svn_path_url_add_component2(parent->commit->txn_root_url,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, new_file->pool);
> Â Â }
> Â else
> Â Â {
> @@ -1844,7 +1847,7 @@ close_file(void *file_baton,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ctx->commit->conn,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â uri.path, ctx->copy_revision,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â NULL, pool));
> - Â Â Â req_url = svn_path_url_add_component(basecoll_url, rel_copy_path, pool);
> + Â Â Â req_url = svn_path_url_add_component2(basecoll_url, rel_copy_path, pool);
>
> Â Â Â handler = apr_pcalloc(pool, sizeof(*handler));
> Â Â Â handler->method = "COPY";
>
> Modified: trunk/subversion/libsvn_ra_serf/get_deleted_rev.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/get_deleted_rev.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/get_deleted_rev.c  Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/get_deleted_rev.c  Fri Feb 27 13:50:27 2009     (r36202)
> @@ -200,7 +200,7 @@ svn_ra_serf__get_deleted_rev(svn_ra_sess
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ras, NULL, NULL, peg_revision, NULL,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â pool));
>
> - Â req_url = svn_path_url_add_component(basecoll_url, relative_url, pool);
> + Â req_url = svn_path_url_add_component2(basecoll_url, relative_url, pool);
>
> Â parser_ctx = apr_pcalloc(pool, sizeof(*parser_ctx));
> Â parser_ctx->pool = pool;
>
> Modified: trunk/subversion/libsvn_ra_serf/getlocations.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/getlocations.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/getlocations.c    Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/getlocations.c    Fri Feb 27 13:50:27 2009     (r36202)
> @@ -229,7 +229,7 @@ svn_ra_serf__get_locations(svn_ra_sessio
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â NULL, NULL, peg_revision, NULL,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â pool));
>
> - Â req_url = svn_path_url_add_component(basecoll_url, relative_url, pool);
> + Â req_url = svn_path_url_add_component2(basecoll_url, relative_url, pool);
>
> Â handler = apr_pcalloc(pool, sizeof(*handler));
>
>
> Modified: trunk/subversion/libsvn_ra_serf/getlocationsegments.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/getlocationsegments.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/getlocationsegments.c    Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/getlocationsegments.c    Fri Feb 27 13:50:27 2009     (r36202)
> @@ -176,7 +176,7 @@ svn_ra_serf__get_location_segments(svn_r
> Â SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â NULL, NULL, peg_revision, NULL, pool));
>
> - Â req_url = svn_path_url_add_component(basecoll_url, relative_url, pool);
> + Â req_url = svn_path_url_add_component2(basecoll_url, relative_url, pool);
>
> Â handler = apr_pcalloc(pool, sizeof(*handler));
>
>
> Modified: trunk/subversion/libsvn_ra_serf/getlocks.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/getlocks.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/getlocks.c  Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/getlocks.c  Fri Feb 27 13:50:27 2009     (r36202)
> @@ -297,7 +297,7 @@ svn_ra_serf__get_locks(svn_ra_session_t
> Â lock_ctx->hash = apr_hash_make(pool);
> Â lock_ctx->done = FALSE;
>
> - Â req_url = svn_path_url_add_component(session->repos_url.path, path, pool);
> + Â req_url = svn_path_url_add_component2(session->repos_url.path, path, pool);
>
> Â handler = apr_pcalloc(pool, sizeof(*handler));
>
>
> Modified: trunk/subversion/libsvn_ra_serf/locks.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/locks.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/locks.c   Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/locks.c   Fri Feb 27 13:50:27 2009     (r36202)
> @@ -496,7 +496,7 @@ svn_ra_serf__get_lock(svn_ra_session_t *
> Â svn_error_t *err;
> Â int status_code;
>
> - Â req_url = svn_path_url_add_component(session->repos_url.path, path, pool);
> + Â req_url = svn_path_url_add_component2(session->repos_url.path, path, pool);
>
> Â lock_ctx = apr_pcalloc(pool, sizeof(*lock_ctx));
>
> @@ -596,8 +596,8 @@ svn_ra_serf__lock(svn_ra_session_t *ra_s
> Â Â Â lock_ctx->lock->comment = comment;
>
> Â Â Â lock_ctx->force = force;
> - Â Â Â req_url = svn_path_url_add_component(session->repos_url.path,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â lock_ctx->path, subpool);
> + Â Â Â req_url = svn_path_url_add_component2(session->repos_url.path,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â lock_ctx->path, subpool);
>
> Â Â Â handler = apr_pcalloc(subpool, sizeof(*handler));
>
> @@ -746,8 +746,8 @@ svn_ra_serf__unlock(svn_ra_session_t *ra
> Â Â Â unlock_ctx.force = force;
> Â Â Â unlock_ctx.token = apr_pstrcat(subpool, "<", token, ">", NULL);
>
> - Â Â Â req_url = svn_path_url_add_component(session->repos_url.path, path,
> - Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â subpool);
> + Â Â Â req_url = svn_path_url_add_component2(session->repos_url.path, path,
> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â subpool);
>
> Â Â Â handler = apr_pcalloc(subpool, sizeof(*handler));
>
>
> Modified: trunk/subversion/libsvn_ra_serf/log.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/log.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/log.c    Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/log.c    Fri Feb 27 13:50:27 2009     (r36202)
> @@ -576,7 +576,7 @@ svn_ra_serf__get_log(svn_ra_session_t *r
> Â SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â NULL, NULL, peg_rev, NULL, pool));
>
> - Â req_url = svn_path_url_add_component(basecoll_url, relative_url, pool);
> + Â req_url = svn_path_url_add_component2(basecoll_url, relative_url, pool);
>
> Â handler = apr_pcalloc(pool, sizeof(*handler));
>
>
> Modified: trunk/subversion/libsvn_ra_serf/mergeinfo.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/mergeinfo.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/mergeinfo.c Fri Feb 27 12:48:28 2009 Â Â Â Â (r36201)
> +++ trunk/subversion/libsvn_ra_serf/mergeinfo.c Fri Feb 27 13:50:27 2009 Â Â Â Â (r36202)
> @@ -240,7 +240,7 @@ svn_ra_serf__get_mergeinfo(svn_ra_sessio
> Â SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â NULL, NULL, revision, NULL, pool));
>
> - Â path = svn_path_url_add_component(basecoll_url, relative_url, pool);
> + Â path = svn_path_url_add_component2(basecoll_url, relative_url, pool);
>
> Â mergeinfo_ctx = apr_pcalloc(pool, sizeof(*mergeinfo_ctx));
> Â mergeinfo_ctx->pool = pool;
>
> Modified: trunk/subversion/libsvn_ra_serf/options.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/options.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/options.c  Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/options.c  Fri Feb 27 13:50:27 2009     (r36202)
> @@ -32,6 +32,7 @@
> Â #include "svn_config.h"
> Â #include "svn_delta.h"
> Â #include "svn_version.h"
> +#include "svn_dirent_uri.h"
> Â #include "svn_path.h"
> Â #include "svn_private_config.h"
>
> @@ -182,7 +183,8 @@ end_options(svn_ra_serf__xml_parser_t *p
> Â Â Â Â Â Â strcmp(name.name, "href") == 0)
> Â Â {
> Â Â Â options_ctx->collect_cdata = FALSE;
> - Â Â Â options_ctx->activity_collection = options_ctx->attr_val;
> + Â Â Â options_ctx->activity_collection =
> + Â Â Â Â Â Â Â Â svn_uri_canonicalize(options_ctx->attr_val, options_ctx->pool);
> Â Â Â pop_state(options_ctx);
> Â Â }
>
>
> Modified: trunk/subversion/libsvn_ra_serf/property.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/property.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/property.c  Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/property.c  Fri Feb 27 13:50:27 2009     (r36202)
> @@ -24,6 +24,7 @@
> Â #include "svn_base64.h"
> Â #include "svn_xml.h"
> Â #include "svn_props.h"
> +#include "svn_dirent_uri.h"
>
> Â #include "private/svn_dav_protocol.h"
> Â #include "svn_private_config.h"
> @@ -970,7 +971,7 @@ svn_ra_serf__get_baseline_info(const cha
> Â Â Â const char *decoded_root =
> Â Â Â Â svn_path_uri_decode(session->repos_root.path, pool);
>
> - Â Â Â basecoll_url = apr_psprintf(pool, "%s/%ld/",
> + Â Â Â basecoll_url = apr_psprintf(pool, "%s/%ld",
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â session->rev_root_stub, revision);
>
> Â Â Â if (latest_revnum)
> @@ -1026,7 +1027,9 @@ svn_ra_serf__get_baseline_info(const cha
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â _("The OPTIONS response did not include "
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "the requested checked-in value"));
> Â Â Â Â Â Â }
> -
> +
> + Â Â Â Â Â baseline_url = svn_uri_canonicalize(baseline_url, pool);
> +
> Â Â Â Â Â SVN_ERR(svn_ra_serf__retrieve_props(props, session, conn,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â baseline_url, revision, "0",
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â baseline_props, pool));
> @@ -1041,7 +1044,9 @@ svn_ra_serf__get_baseline_info(const cha
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â _("The OPTIONS response did not include the "
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â "requested baseline-collection value"));
> Â Â Â Â }
> -
> +
> + Â Â Â basecoll_url = svn_uri_canonicalize(basecoll_url, pool);
> +
> Â Â Â if (latest_revnum)
> Â Â Â Â {
> Â Â Â Â Â const char *version_name;
>
> Modified: trunk/subversion/libsvn_ra_serf/serf.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/serf.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/serf.c    Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/serf.c    Fri Feb 27 13:50:27 2009     (r36202)
> @@ -498,7 +498,7 @@ fetch_path_props(svn_ra_serf__propfind_c
> Â /* If we have a relative path, append it. */
> Â if (rel_path)
> Â Â {
> - Â Â Â path = svn_path_url_add_component(path, rel_path, pool);
> + Â Â Â path = svn_path_url_add_component2(path, rel_path, pool);
> Â Â }
>
> Â props = apr_hash_make(pool);
> @@ -527,7 +527,7 @@ fetch_path_props(svn_ra_serf__propfind_c
> Â Â Â Â * the revision's baseline-collection.
> Â Â Â Â */
> Â Â Â prop_ctx = NULL;
> - Â Â Â path = svn_path_url_add_component(basecoll_url, relative_url, pool);
> + Â Â Â path = svn_path_url_add_component2(basecoll_url, relative_url, pool);
> Â Â Â revision = SVN_INVALID_REVNUM;
> Â Â Â svn_ra_serf__deliver_props(&prop_ctx, props, session, session->conns[0],
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â path, revision, "0",
> @@ -777,7 +777,7 @@ svn_ra_serf__get_dir(svn_ra_session_t *r
> Â /* If we have a relative path, URI encode and append it. */
> Â if (rel_path)
> Â Â {
> - Â Â Â path = svn_path_url_add_component(path, rel_path, pool);
> + Â Â Â path = svn_path_url_add_component2(path, rel_path, pool);
> Â Â }
>
> Â props = apr_hash_make(pool);
> @@ -793,7 +793,7 @@ svn_ra_serf__get_dir(svn_ra_session_t *r
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â session, NULL, path, revision,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â fetched_rev, pool));
>
> - Â Â Â path = svn_path_url_add_component(basecoll_url, relative_url, pool);
> + Â Â Â path = svn_path_url_add_component2(basecoll_url, relative_url, pool);
> Â Â Â revision = SVN_INVALID_REVNUM;
> Â Â }
>
>
> Modified: trunk/subversion/libsvn_ra_serf/update.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/update.c?pathrev=36202&r1=36201&r2=36202
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/update.c   Fri Feb 27 12:48:28 2009     (r36201)
> +++ trunk/subversion/libsvn_ra_serf/update.c   Fri Feb 27 13:50:27 2009     (r36202)
> @@ -2591,7 +2591,7 @@ svn_ra_serf__get_file(svn_ra_session_t *
> Â /* Fetch properties. */
> Â fetch_props = apr_hash_make(pool);
>
> - Â fetch_url = svn_path_url_add_component(session->repos_url.path, path, pool);
> + Â fetch_url = svn_path_url_add_component2(session->repos_url.path, path, pool);
>
> Â /* The simple case is if we want HEAD - then a GET on the fetch_url is fine.
> Â Â *
> @@ -2605,7 +2605,7 @@ svn_ra_serf__get_file(svn_ra_session_t *
> Â Â Â SVN_ERR(svn_ra_serf__get_baseline_info(&baseline_url, &rel_path,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â session, conn, fetch_url,
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â revision, NULL, pool));
> - Â Â Â fetch_url = svn_path_url_add_component(baseline_url, rel_path, pool);
> + Â Â Â fetch_url = svn_path_url_add_component2(baseline_url, rel_path, pool);
> Â Â Â revision = SVN_INVALID_REVNUM;
> Â Â }
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=495&dsMessageId=1241042
>
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1243603
Received on 2009-02-28 09:48:01 CET