Mergeinfo overwritten from successive merges

2014-03-12 Thread Jeb Wilson
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

Thanks,
Jeb



Re: Mergeinfo overwritten from successive merges

2014-03-13 Thread Jeb Wilson
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