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

Re: Tree conflicts - problem handling when local directory is deleted

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Thu, 22 Jan 2009 14:56:59 +0000

FYI I'm just about to look at this.

- Julian

On Thu, 2009-01-22 at 09:54 -0500, Mark Phippard wrote:
> On Wed, Jan 21, 2009 at 3:22 PM, Mark Phippard <markphip_at_gmail.com> wrote:
> > We've run into a problem when testing tree conflicts. We have a
> > locally renamed folder. We do an update which wants to pull in an
> > update to a file in the folder. This creates a tree conflict. We
> > resolve the conflict but cannot commit the change because the folder
> > to be deleted is out of date. I'd guess the tree conflict prevented
> > the normal updating of the directory revision in the WC.
> >
> > I also build and tried the script using the issue-3334-dirs branch and
> > get the same results
> >
> > $ ./script.sh
> > ### Making a Greek Tree for import...
> > ### Done.
> >
> > ### Importing it...
> > ### Done.
> >
> > ### In wc1, edit and commit A/B/E/alpha ...
> > Sending wc1/A/B/E/alpha
> > Transmitting file data .
> > Committed revision 2.
> > ### Done.
> >
> > ### In wc2, rename A/B/E to A/B/E1 ...
> > A wc2/A/B/E1
> > D wc2/A/B/E/alpha
> > D wc2/A/B/E/beta
> > D wc2/A/B/E
> > ### update wc2, creating tree conflict ...
> > C wc2/A/B/E
> > At revision 2.
> > Summary of conflicts:
> > Tree conflicts: 1
> > D C wc2/A/B/E
> > > local delete, incoming edit upon update
> > D wc2/A/B/E/alpha
> > D wc2/A/B/E/beta
> > A + wc2/A/B/E1
> > ### In wc2, merge change from r2 to renamed file ...
> > --- Merging r2 into 'wc2/A/B/E1':
> > U wc2/A/B/E1/alpha
> > ### In wc2, mark conflict resolved ...
> > Resolved conflicted state of 'wc2/A/B/E'
> > D wc2/A/B/E
> > D wc2/A/B/E/alpha
> > D wc2/A/B/E/beta
> > A + wc2/A/B/E1
> > M + wc2/A/B/E1/alpha
> > ### In wc2, commit rename
> > Deleting wc2/A/B/E
> > subversion/libsvn_client/commit.c:859: (apr_err=160028)
> > svn: Commit failed (details follow):
> > subversion/libsvn_repos/commit.c:124: (apr_err=160028)
> > svn: Directory '/trunk/A/B/E' is out of date
>
>
> Just for the heck of it, I ran the script using 1.5.5. Overall it is
> handled better than trunk, although it obviously does not alert the
> user to the tree conflict situation. That said, at least if the user
> knew about the problem, 1.5.5 offers a way to handle it. With current
> trunk, you cannot get your WC into a state that will allow a commit.
> Here are results with 1.5.5:
>
> $ ./script.sh
> ### Making a Greek Tree for import...
> ### Done.
>
> ### Importing it...
> ### Done.
>
> ### In wc1, edit and commit A/B/E/alpha ...
> Sending wc1/A/B/E/alpha
> Transmitting file data .
> Committed revision 2.
> ### Done.
>
> ### In wc2, rename A/B/E to A/B/E1 ...
> A wc2/A/B/E1
> D wc2/A/B/E/alpha
> D wc2/A/B/E/beta
> D wc2/A/B/E
> ### update wc2, creating tree conflict ...
> U wc2/A/B/E/alpha
> Updated to revision 2.
> D wc2/A/B/E
> D wc2/A/B/E/alpha
> D wc2/A/B/E/beta
> A + wc2/A/B/E1
> ### In wc2, merge change from r2 to renamed file ...
> --- Merging r2 into 'wc2/A/B/E1':
> U wc2/A/B/E1/alpha
> ### In wc2, mark conflict resolved ...
> D wc2/A/B/E
> D wc2/A/B/E/alpha
> D wc2/A/B/E/beta
> A + wc2/A/B/E1
> M + wc2/A/B/E1/alpha
> ### In wc2, commit rename
> Deleting wc2/A/B/E
> Adding wc2/A/B/E1
> Sending wc2/A/B/E1/alpha
> Transmitting file data .
> Committed revision 3.
>
>

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1043227
Received on 2009-01-22 15:57:23 CET

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