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

Re: [BUG] svn merge doesn't merge delete+add of folder

From: Lieven Govaerts <lgo_at_mobsol.be>
Date: 2006-03-20 14:58:34 CET

That code is merged to trunk right? I'll check it tonight then to see if it's
really solved. Thanks for the input.

Lieven.

Quoting Ben Collins-Sussman <sussman@red-bean.com>:

> I believe this bug is fixed in svn 1.4, it was one of the major
> motivations for all the libsvn_wc changes.
>
> On 3/20/06, Lieven Govaerts <lgo@mobsol.be> wrote:
> > Hi,
> >
> >
> > my users are encountering an issue with merging delete+add of a folder from
> one
> > branch to another. I've seen this problem for some time now, but I'm so
> used to
> > just provide them with the workaround that I forgot to report it here.
> >
> > 0. Context
> > ----------
> > Tested on:
> > - Subversion 1.2.3 on Windows ( standard Windows installer )
> > - Subversion 1.3.0 on Linux ( Suse 9, built from source )
> >
> > 1. The problem in short
> > -----------------------
> > r1: create a repository
> > add trunk, add trunk/folder and add some files in the folder + commit
> >
> > r2: create branch from trunk
> > r3: on branch, delete the folder 'folder' + commit
> >
> > r4: on branch, add folder again, with some files + commit
> >
> > Now merge the changes from branch ( r2:4 ) to trunk.
> >
> > This merge will fail with error:
> > svn: Revision 4 doesn't match existing revision 2 in 'trunk/folder'
> > In trunk's working copy, only the delete of 'folder' has been merged,
> adding the
> > new 'folder' has failed.
> >
> > 2. The workaround
> > -----------------
> > Once you decipher the error message, the workaround is to split the merge
> in two
> > parts:
> > - find the revision in which 'folder' was deleted from to branch.
> > - merge up to that revision to trunk + commit
> > - merge the rest of the revisions to trunk + commit
> >
> > 3. Issue?
> > ---------
> > The fact that merge can not replace a folder by a new folder with the same
> name
> > is an issue for me. The error message is also pretty unclear. In fact, I
> have
> > no idea what it is trying to say. The revisions it shows are normally
> totally
> > unrelated to the revisions in which the delete and add where committed.
> >
> > I've seen this problem reported on the users list before, so I guessed an
> issue
> > was already reported in the issue tracker, but I can't find any that looks
> > related. Maybe someone else can confirm this?
> >
> > 4. Reproduction recipe
> > ----------------------
> > # create a new empty repository ( fixed path in /tmp/svnissue )
> > cd /tmp
> > mkdir svnissue
> > cd svnissue/
> > svnadmin create issue
> > svn checkout file:///tmp/svnissue/issue issuewc
> > cd issuewc
> >
> > # add trunk
> > mkdir trunk
> > mkdir trunk/folder
> > echo "test content" > trunk/folder/testfile
> > svn add trunk
> > svn ci trunk -m "added trunk with folder"
> >
> > # create branch from this trunk
> > svn cp file:///tmp/svnissue/issue/trunk file:///tmp/svnissue/issue/branch
> -m
> > "created branch from trunk@1"
> >
> > svn update
> >
> > # delete original folder
> > cd branch/
> > svn del folder
> > svn ci . -m "deleted folder"
> >
> > # add new folder ( reusing the same name! )
> > mkdir folder
> > echo "new content" > folder/otherfile
> > svn add folder
> > svn ci . -m "add folder again"
> >
> > # now merge the new folder to trunk
> > cd ..
> > svn merge -r 2:4 file:///tmp/svnissue/issue/branch trunk
> >
> > # You'll notice an exception: svn: Revision 4 doesn't match existing
> revision 2
> > in 'trunk/folder'
> > # Only the delete of folder will be merged, adding the new folder fails.
> > ---------------------------
> >
> > regards,
> >
> > Lieven.
> >
> > ----------------------------------------------------------------
> > This message was sent using IMP, the Internet Messaging Program.
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> > For additional commands, e-mail: dev-help@subversion.tigris.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org
>
>

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Mar 20 15:00:04 2006

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