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

Re: Reverse merge removes directory even if it contains files that were added on another commit.

From: Ryan Schmidt <subversion-2008c_at_ryandesign.com>
Date: Tue, 15 Jul 2008 15:49:55 -0500

On Jul 15, 2008, at 14:10, jim97123 wrote:

> I have a developer that added a directory on one commit and the
> second developer added files to it on a subsequent commit for a
> different development effort. When we decided to remove the code
> the first developer added the reverse merge removed the directory
> even though it contained files that were committed on a different
> revision.
>
> Developer A created
> directory1 and added file-x (revision 123)
>
> Developer B added file-y in Directory1 (revision 135)
>
> Subsequently I had to remove Developer A work in revision 123 from
> branch and directory1 was removed (also taking with it file-y)

I can confirm that, with Subversion 1.5.0 on Mac OS X 10.4.11 Intel.
Here's a reproduction recipe:

$ svnadmin create repo
$ REPO=file://`pwd`/repo
$ svn co $REPO wc
Checked out revision 0.
$ cd wc
$ svn mkdir dir
A dir
$ date > dir/file1
$ svn add dir/file1
A dir/file1
$ svn ci -m ""
Adding dir
Adding dir/file1
Transmitting file data .
Committed revision 1.
$ date > dir/file2
$ svn add dir/file2
A dir/file2
$ svn ci -m ""
Adding dir/file2
Transmitting file data .
Committed revision 2.
$ svn up
At revision 2.
$ svn merge -c-1 $REPO
--- Reverse-merging r1 into '.':
D dir
$ svn st
D dir
D dir/file1
D dir/file2
$ svn ci -m ""
Deleting dir

Committed revision 3.
$ ls
$

> It would be helpful if Subversion could look at the directory to
> see if removing it would remove files that were not part of it's
> commit prior to removing the directory.

At the moment, that sounds like a good idea, yes. Though I don't know
if the behavior we're observing is a bug or is meant to be that way.
Certainly you get the opportunity to inspect the working copy after
you merge and before you commit, so if something is scheduled for
deletion that you didn't want scheduled for deletion you can revert
it. But I admit you may not realize that something has been
incorrectly scheduled for deletion until later, especially if the
person reverse-merging the first revision is not the author of that
revision.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-07-15 22:50:32 CEST

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

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