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@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. br...@wandisco.com

Attachment: repro.sh
Description: Bourne shell script

Reply via email to