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

Re: Mergeinfo overwritten from successive merges

From: Branko Čibej <brane_at_wandisco.com>
Date: Thu, 13 Mar 2014 04:59:09 +0100

On 12.03.2014 21:24, Jeb Wilson wrote:
> Hello all,
>
> Apologies if this has already been reported, but it's a difficult one to search for. This came through from TortoiseSVN 1.8.5.
>
> Here's the basic way to reproduce:
>
> User #1 merges from A -> B and commits.
> User #2 merges SOMETHING ELSE from A->B but doesn't update first to get User #1's changes.
> User #2 commits, and SVN allows the commit. After reviewing the resulting mergeinfo, User #1's mergeinfo is overwritten, and the merge info from User #1 is lost.
>
> I've reproduced this several times with TortoiseSVN 1.8.5. Note, we're using 2.5.16 version of VisualSVN server.
>
> My opinion is SVN should reject User #2's commit, and inform them they have an out-of-date working copy and it should force them to update before committing their merge changes.
> When I downgrade to 1.8.3, the proper "out of date" warning comes up and forces an update. Thus, it must have been something that was introduced as of 1.8.4.
> FYI, another user has reported this issue here: http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3071239

I can't reproduce this with either 1.8.5 or 1.8.8, with the attached
script; both give the same output (see below). If this is indeed a bug,
and not pilot error, it would appear to be specific to TortoiseSVN, not
Subversion.

-- Brane

brane_at_zulu:/tmp/test$ ~/repro.sh
+ svnadmin create repo
+ svn checkout file:///tmp/test/repo structure
Checked out revision 0.
+ svn mkdir structure/trunk
A structure/trunk
+ echo a
+ echo b
+ svn add structure/trunk/a structure/trunk/b
A structure/trunk/a
A structure/trunk/b
+ svn commit -mm structure
Adding structure/trunk
Adding structure/trunk/a
Adding structure/trunk/b
Transmitting file data ..
Committed revision 1.
+ rm -fr structure
+ svn copy -mm file:///tmp/test/repo/trunk file:///tmp/test/repo/branch

Committed revision 2.
+ svn checkout file:///tmp/test/repo/trunk user1
A user1/a
A user1/b
Checked out revision 2.
+ echo aa
+ svn commit -mm user1
Sending user1/a
Transmitting file data .
Committed revision 3.
+ svn checkout file:///tmp/test/repo/trunk user2
A user2/a
A user2/b
Checked out revision 3.
+ echo bb
+ svn commit -mm user2
Sending user2/b
Transmitting file data .
Committed revision 4.
+ svn switch file:///tmp/test/repo/branch user1
U user1/a
Updated to revision 4.
+ svn switch file:///tmp/test/repo/branch user2
U user2/b
U user2/a
Updated to revision 4.
+ svn merge -c3 file:///tmp/test/repo/trunk user1
--- Merging r3 into 'user1':
U user1/a
--- Recording mergeinfo for merge of r3 into 'user1':
 U user1
+ svn commit -mm user1
Sending user1
Sending user1/a
Transmitting file data .
Committed revision 5.
+ svn merge -c4 file:///tmp/test/repo/trunk user2
--- Merging r4 into 'user2':
U user2/b
--- Recording mergeinfo for merge of r4 into 'user2':
 U user2
+ svn commit -mm user2
Sending user2
svn: E155011: Commit failed (details follow):
svn: E155011: Directory '/private/tmp/test/user2' is out of date
svn: E160028: Directory '/branch' is out of date

-- 
Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
e. brane_at_wandisco.com

Received on 2014-03-13 04:59:48 CET

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.