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
repro.sh
Description: Bourne shell script