On 31.10.2011 18:09, Michael.Rumpf_at_t-systems.com wrote:
> Hi,
>
> I probably have an issue with the TortoiseSVN client (1.6.17). I first thought that it is a SVN issue in general so I was asking on the subversion mailing list.
> There I got an answer with describing my case in a few "simple" steps:
>
>> Suppose we start off with the following structure:
>>
>> revision 2 ("r2"):
>> /branch (copy of trunk_at_r1)
>> /trunk
>>
>> We now make an edit in /trunk in r3:
>>
>> $ svn co http://svn.example.com/repos/trunk
>> $ cd trunk
>> $ echo foo>> somefile
>> $ svn ci -m "edit somefile"
>>
>> and merge this edit to /branch in r4.
>>
>> $ cd branch-working-copy
>> $ svn co http://svn.example.com/repos/branch
>> $ cd branch
>> $ svn merge ^/trunk
>>
>> Now someone clever comes a long and renames ^/trunk to ^/master in r5:
>>
>> $ cd trunk
>> $ svn mv ^/trunk ^/master -m "rename trunk to master"
>> $ svn switch ^/master # update trunk working copy to the new
>> location
>>
>> In r6, we make another edit on the trunk (now 'master'):
>>
>> $ cd trunk
>> $ echo foo>> somefile
>> $ svn ci -m "edit somefile"
>>
>> In the branch working copy, asking for unmerged revisions from
>> ^/trunk_at_HEAD fails because ^/trunk doesn't appear in the HEAD
>> revision anymore:
>>
>> $ cd branch
>> $ svn mergeinfo --show-revs eligible ^/trunk
>> svn: E160013: File not found: revision 6, path '/trunk'
>>
>> Note that the mergeinfo command still works if we specify a peg-revision
>> in the URL to tell Subversion to look for the path /trunk at revision 4
>> instead of in the HEAD revision (the default peg-revision is HEAD where
>> /trunk does not exist anymore):
>>
>> $ svn mergeinfo --show-revs merged ^/trunk_at_4
>> r3
>>
>> Likewise, if the new name is used, the eligible revisions appear:
>>
>> $ svn mergeinfo --show-revs eligible ^/master
>> r6
>>
>> And we can also merge from the new name:
>>
>> $ svn merge ^/master
>> --- Recording mergeinfo for merge of r4 into '.':
>> U .
>> --- Merging r5 through r6 into '.':
>> U alpha
>> --- Recording mergeinfo for merge of r5 through r6 into '.':
>> G .
>> $ svn propget -v svn:mergeinfo .
>> Properties on '.':
>> svn:mergeinfo
>> /master:5-6
>> /trunk:2-4
>>
>> This seems to be exactly the issue we are facing. The developers are
>> using TortoiseSVN and not the command-line, so I need to map the
>> commands to the UI client:
>>
>> 1. Open the Merge Editor
>> 2. Open the browser window "URL to merge from: -> ..."
>> You need to enter a URL, otherwise the "..." will not open any window.
>> If you enter the old ^/trunk it switches back to the current root, as
>> the window opens with "HEAD" revision.
>> 3. Go back to the revision before the rename/move operation happened: 4
>> in your example above (69398 in my case)
>> 4. Select the Branch URL for the old location from which you want to
>> merge
>> 5. Click OK
>> 6. Click on Show Log for the "Revisions range to merge"
>> No eligible revisions are shown in the list, instead it says
>> '/svn/REPO/!svn/bc/5/trunk' path not found (69402 in my case)
>>
>> For this test I turned back my local working copy to the revision before
>> the svn:mergeinfo change (rev 69508). I currently do not have the chance
>> to get the server repository back to the hotcopy version as no admin is
>> available until wednesday because there is a public holiday tomorrow in
>> Germany ;)
>
> So, my question is how can I perform the merge operations, described above, by using the TortoiseSVn client?
In TSVN 1.7.x you can specify the peg revision for the merge where you
specify the revisions to merge: just add @123 at the end of the revision
range.
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2870571
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2011-11-01 21:19:34 CET