Hello,
I've reproduced this mergeinfo overwriting issue using the following steps. We
are seeing this with svn client v1.8.8, and using a remote VisualSVN server
v2.7.0 (which uses svn v1.8.8). NOTE: This cannot be replicated by using a
locally created repo...we've only been able to replicate with VisualSVN
remotely.
TO REPRODUCE:
We started out by creating an empty repo called TestRepo on the server. Then:
E:\Colspace\sandbox2>mkdir fullrepo
E:\Colspace\sandbox2>svn checkout https://svn.colspace.com/svn/TestRepo fullrepo
Checked out revision 0.
E:\Colspace\sandbox2>cd fullrepo
E:\Colspace\sandbox2\fullrepo>svn mkdir trunk
A trunk
E:\Colspace\sandbox2\fullrepo>svn mkdir branch
A branch
E:\Colspace\sandbox2\fullrepo>svn commit -mm .
Adding branch
Adding trunk
Committed revision 1.
E:\Colspace\sandbox2\fullrepo>cd ..
E:\Colspace\sandbox2>mkdir trunk
E:\Colspace\sandbox2>mkdir user1_branch
E:\Colspace\sandbox2>mkdir user2_branch
E:\Colspace\sandbox2>svn checkout https://svn.colspace.com/svn/TestRepo/trunk
trunk
Checked out revision 1.
E:\Colspace\sandbox2>svn checkout https://svn.colspace.com/svn/TestRepo/branch
user1_branch
Checked out revision 1.
E:\Colspace\sandbox2>svn checkout https://svn.colspace.com/svn/TestRepo/branch
user2_branch
Checked out revision 1.
E:\Colspace\sandbox2>echo "file1" > trunk/file1.txt
E:\Colspace\sandbox2>svn add trunk/file1.txt
A trunk\file1.txt
E:\Colspace\sandbox2>svn commit -mm trunk
Adding trunk\file1.txt
Transmitting file data .
Committed revision 2.
E:\Colspace\sandbox2>echo "file2" > trunk/file2.txt
E:\Colspace\sandbox2>svn add trunk/file2.txt
A trunk\file2.txt
E:\Colspace\sandbox2>svn commit -mm trunk
Adding trunk\file2.txt
Transmitting file data .
Committed revision 3.
E:\Colspace\sandbox2>svn merge -c2 https://svn.colspace.com/svn/TestRepo/trunk
user1_branch
--- Merging r2 into 'user1_branch':
Auser1_branch\file1.txt
--- Recording mergeinfo for merge of r2 into 'user1_branch':
U user1_branch
E:\Colspace\sandbox2>svn commit -mm user1_branch
Sendinguser1_branch
Adding user1_branch\file1.txt
Committed revision 4.
E:\Colspace\sandbox2>svn merge -c3 https://svn.colspace.com/svn/TestRepo/trunk
user2_branch
--- Merging r3 into 'user2_branch':
Auser2_branch\file2.txt
--- Recording mergeinfo for merge of r3 into 'user2_branch':
U user2_branch
E:\Colspace\sandbox2>svn commit -mm user2_branch
Sendinguser2_branch
Adding user2_branch\file2.txt
Committed revision 5.
E:\Colspace\sandbox2>svn update user1_branch
Updating 'user1_branch':
Auser1_branch\file2.txt
U user1_branch
Updated to revision 5.
E:\Colspace\sandbox2>svn propget svn:mergeinfo user1_branch
/trunk:3
WHOOPS, WHAT HAPPENED TO THE MERGED REV 2?? I MERGED IT, BUT THE MERGEINFO GOT
OVERWRITTEN.
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
Transmitti