subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim van Halteren <t.van.halte...@inforay.nl>
Subject Re: SVN 1.8 merge (branch reuse) seems broken when having local mergeinfo
Date Thu, 13 Mar 2014 16:54:18 GMT
No replies? Is this a bug or user error? Do I need to file a bug?
Could I have done something differently  to increase the chance of a 
response?

Thx, Tim



On 3/6/2014 6:15 PM, Tim van Halteren wrote:
> We have a problem with the new 1.8 subversion clients (we use 
> TortoiseSVN 1.8.5 and SlikSVN 1.8.5). It seems that the new SVN 1.8 
> feature of being able to keep using your feature branch after 
> reintegration is not working in some cases.
>
> It is not working when the trunk contains local mergeinfo (Mergeinfo 
> on files or sub-trees). This may cause a problem for branch reuse 
> after the reintegrate. This wasn't a problem with 1.7 clients if 
> branch reuse was done using the 'keep alive dance' (using the record 
> only option).
>
> I have made a script that illustrates this problem from scratch. It 
> can be run against an empty repository using a 1.8 client.
>
> The script below has 10 steps. Step 1-5 are used to create the 
> starting situation of having local mergeinfo in the trunk. Steps 6-9 
> simulate changes being made to the trunk during the life of a feature 
> branch2. Step 10 is the failing step which simulates the first step of 
> reuse of the feature branch after reintegrate.
>
>
> This is the error in step 10:
>
> svn: E195016: Reintegrate can only be used if revisions 346 through 
> 349 were previously merged from 
> svn://svn2010/practice/branches/featurebranch2 to the reintegrate 
> source, but this is not the case:
>   trunk/file1.txt
>     Missing ranges: /trunk/file1.txt:347
> This is the script. You need to change the subversion URL's to point 
> to your repository.
>
>
> I do not understand why this happens. Also the error reports missing 
> ranges of file1.txt while it seems to be file2.txt that is missing 
> mergeinfo. While not a solution, deleting the local mergeinfo on 
> file2.txt in the trunk also seems to fix the problem. This also hints 
> that the error message is reporting something on the wrong file.
>
>
>
> @ECHO OFF
> ECHO ------------------------------------------------------------------
> ECHO STEP 1: Create a trunk with 2 files
> ECHO ------------------------------------------------------------------
> svn mkdir -m "Create trunk" svn://svn2010/practice/trunk
> svn checkout svn://svn2010/practice/trunk
> echo Original file contents created in the trunk. > trunk\file1.txt
> echo Original file contents created in the trunk. > trunk\file2.txt
> svn add trunk\file1.txt
> svn add trunk\file2.txt
> svn -m "Added 2 files" commit trunk
>
> ECHO ------------------------------------------------------------------
> ECHO STEP 2: Create a copy (feature branch) from the trunk
> ECHO ------------------------------------------------------------------
> svn mkdir -m "Create branches dir" svn://svn2010/practice/branches
> svn copy -m "Create featurebranch1" svn://svn2010/practice/trunk 
> svn://svn2010/practice/branches/featurebranch1
>
> ECHO ------------------------------------------------------------------
> ECHO STEP 3: Modify both files in the feature branch
> ECHO ------------------------------------------------------------------
> svn checkout svn://svn2010/practice/branches/featurebranch1
> echo Additional file contents created in featurebranch1. >> 
> featurebranch1\file1.txt
> echo Additional file contents created in featurebranch1. >> 
> featurebranch1\file2.txt
> svn -m "Modified 2 files in featurebranch1" commit featurebranch1
>
> ECHO ------------------------------------------------------------------
> ECHO STEP 4: Merge both files from featurebranch1 to the trunk to
> ECHO         create local mergeinfo on both files
> ECHO ------------------------------------------------------------------
> svn update trunk
> svn merge svn://svn2010/practice/branches/featurebranch1/file1.txt 
> trunk/file1.txt
> svn merge svn://svn2010/practice/branches/featurebranch1/file2.txt 
> trunk/file2.txt
> svn -m "Merged 2 files from featurebranch1 to trunk" commit trunk
>
> ECHO ------------------------------------------------------------------
> ECHO STEP 5: Delete featurebranch2, we only needed it for the
> ECHO         initial setup
> ECHO ------------------------------------------------------------------
> svn delete -m "Delete featurebranch1" 
> svn://svn2010/practice/branches/featurebranch1
>
> ECHO ------------------------------------------------------------------
> ECHO STEP 6: This is the start of the problematic scenario
> ECHO         Create a new featurebranch2 from the trunk and a wc for it
> ECHO ------------------------------------------------------------------
> svn copy -m "Create featurebranch2" svn://svn2010/practice/trunk 
> svn://svn2010/practice/branches/featurebranch2
> svn checkout svn://svn2010/practice/branches/featurebranch2
>
> ECHO ------------------------------------------------------------------
> ECHO STEP 7: Modify the contents of file1.txt in the trunk and leave
> ECHO         the contents of file2.txt unchanged (this is important)
> ECHO ------------------------------------------------------------------
> echo Additional file contents created in the trunk. >> trunk\file1.txt
> svn -m "Modified file1.txt in the trunk" commit trunk
>
> ECHO ------------------------------------------------------------------
> ECHO STEP 8: Sync merge the trunk to featurebranch2
> ECHO ------------------------------------------------------------------
> svn update featurebranch2
> svn merge svn://svn2010/practice/trunk featurebranch2
> svn -m "Sync merged the trunk into featurebranch2" commit featurebranch2
>
> ECHO ------------------------------------------------------------------
> ECHO STEP 9: Reintegrate featurebranch2 back into the trunk
> ECHO ------------------------------------------------------------------
> svn update trunk
> svn merge svn://svn2010/practice/branches/featurebranch2 trunk
> svn -m "Reintegrated featurebranch2 back into the trunk" commit trunk
>
> ECHO ------------------------------------------------------------------
> ECHO STEP 10: Try to reuse featurebranch2 after it was reintegrated
> ECHO          Sync merge it from the trunk. THIS FAILS with SVN 1.8
> ECHO ------------------------------------------------------------------
> svn update featurebranch2
> svn merge svn://svn2010/practice/trunk featurebranch2
>


Mime
View raw message