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

Re: [PATCH] Fix #3390 Relative externals not updated during switch, for backport to 1.6.x

From: Daniel Näslund <daniel_at_longitudo.com>
Date: Fri, 22 Jan 2010 20:54:16 +0100

On Fri, Jan 22, 2010 at 08:51:35PM +0100, Daniel Näslund wrote:
> On Fri, Jan 22, 2010 at 01:04:13PM -0500, C. Michael Pilato wrote:
> > If this is all it takes to fix this issue, I'm going to cry while deleting
> > each and every file from the 'issue-3390-dev' branch one commit at a time.
> > Seriously? This is the whole fix?
>
> I hope so...
>
> You suggested this strategy in the issue tracker (your strategy with
> number, my attempt at solution between):
>
> 1. while crawling the working copy state, collect all the externals
> definitions (pretty much as-is) *and the repository URLs of the directories on
> which they are set*.
>
> The thing is we weren't crawling the wc collecting externals when we
> were doing a merge. We passed NULL for traversal_info.

Typo here. s/merge/switch/

> 2. do the update/switch, remembering any changes to externals definitions that
> come down from the server.
>
> We remember all externals, not just the changed ones.
>
> 3. compare the pre-op externals definitions with the post-op ones, and for any
> that have changed (been added, been removed, or been modified *paying attention
> to changes in the repos URL of the container directory*) do the appropriate thing.
>
> libsvn_client/externals.c is capable of detecting changes in the repos
> URL of the container directory.
>
> I tried a _lot_ of things before I wrote this patch and I agree that it
> looks too easy.
>
> Daniel
>
> >
> > Daniel Näslund wrote:
> > > Hi Stefan!
> > >
> > > This is supposed to be a backport. It is diffed against 1.6.x.
> > >
> > > make check passed.
> > >
> > > [[[
> > > Fix issue #3390, relative externals not updated during switch.
> > >
> > > * subversion/libsvn_client/switch.c
> > > (svn_client__switch_internal): Pass in a traversal_info to
> > > svn_wc_crawl_revision4().
> > >
> > > * subversion/tests/cmdline/externals_tests.py
> > > (switch_relative_external): New.
> > > (test_list): Add new test.
> > >
> > > Patch by: Daniel Näslund <daniel{_AT_}longitudo.com>
> > > ]]]
Received on 2010-01-22 20:54:54 CET

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