[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] Fix failing ci caused in r40202

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Tue, 22 Dec 2009 10:34:04 +0000

On Thu, 2009-12-17, Kannan wrote:
> Julian Foad wrote:
> [..]
> > It would be great if you could trace the calls back to wherever the
> > non-canonical paths are generated, and fix them at that point.
>
> Thank you Julian, for the comments. Attached herewith is the patch to
> canonicalize the URLs. If this seems fine, I shall send the patch to
> upgrade ..add_component() to ..add_component2().
>
> [[[
> Log:
> Ensure the URLs are canonical before passing to the new
> `svn_path_url_add_component2()'.
>
> [ in subversion/libsvn_ra_neon ]
>
> * commit.c
> (checkout_resource): Canonicalize the 'BASE' as
> `svn_path_url_add_component2()' won't handle it.
>
> * props.c
> (svn_ra_neon__get_baseline_info, svn_ra_neon__get_one_prop): Same.
>
> * options.c
> (svn_ra_neon__exchange_capabilities): Same.

Hi Kannan.

With your patch, the code in "commit.c" now looks like this (ignoring
all the error handling):

do_checkout():
  ...
  *locn = svn_ra_neon__request_get_location(request, pool);

checkout_resource():
  do_checkout(cc, rsrc->vsn_url, allow_404, token, &code, &locn, pool);
  ne_uri_parse(locn, &parse);
  rsrc->wr_url = svn_uri_canonicalize(parse.path, rsrc->pool);

Does the "ne_uri_parse" function create a non-canonical ".path", or does
the do_checkout() function create a non-canonical URL?

If the former, we should look for all other uses of ne_uri_parse() and
canonicalize after them as well. If the latter, we should fix the
do_checkout() function and look for all other uses of
svn_ra_neon__request_get_location().

(What does the non-canonical URL or URI look like?)

- Julian
Received on 2009-12-22 11:34:47 CET

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.