On Wed, Dec 30, 2009 at 02:11:31PM +0000, Stefan Sperling wrote:
> On Wed, Dec 30, 2009 at 07:45:12AM +0100, Daniel Näslund wrote:
> > + err = svn_wc__node_get_url(&url, cb->ctx->wc_ctx,
> > + abs_parent_dir, cb->pool, cb->pool);
> > +
> > + /* If we're doing an 'svn export' the current dir will not be a
> > + working copy. We can't get the parent_dir. */
> > + if (err)
> > + {
>
> More nitpicking :-P
> Indentation is off below:
>
> > + if (err->apr_err == SVN_ERR_WC_NOT_WORKING_COPY)
> > + {
> > + /* Get the URL of the parent directory by appending a portion of
> > + parent_dir to from_url. from_url is the URL for to_path and
> > + to_path is a substring of parent_dir, so append any characters in
> > + parent_dir past strlen(to_path) to from_url (making sure to move
> > + past a '/' in parent_dir, otherwise svn_path_url_add_component()
> > + will error. */
> > + len = strlen(cb->to_path);
> > + if (ib.parent_dir[len] == '/')
> > + ++len;
> > + ib.parent_dir_url = svn_path_url_add_component2(cb->from_url,
> > + ib.parent_dir + len,
> > + cb->pool);
> > + svn_error_clear(err);
> > + }
> > + else
> > + return svn_error_return(err);
> > + }
> > + else
> > + ib.parent_dir_url = url;
Fixed!
[[[
Fix issue #3390, relative externals not updated during switch. As a side
effect - allow externals hash diff functionality to be used with abspaths.
* subversion/libsvn_client/switch.c
(svn_client__switch_internal): Pass in an external_func to
svn_wc_crawl_revision5().
* subversion/libsvn_client/externals.c
(handle_externals_desc_change): Get the url for parent_dir with
svn_wc__node_get_url(). Does not work for export where the
parent_dir has no url. Then we resort to the old way of adding the
parent_dir to the from_url.
* subversion/tests/cmdline/externals_tests.py
(test_list): Remove XFail from switch_relative_external.
Patch by: Daniel Näslund <daniel{_AT_}longitudo.com>
Review by: stsp, philip
]]]
Daniel
Received on 2010-01-06 12:54:17 CET