merging example

C. Michael Pilato cmpilato at red-bean.com
Fri Mar 25 14:44:39 CDT 2011


Good grief.  File all this under "user experience #fail", will you?

What version of Subversion is running on your server?  I'm trying to figure
out if the merge tracking feature -- which is designed specifically to make
that -rX:Y part of the 'svn merge' command unnecessary -- is not available
to you.

See, the merge tracking feature, in your situation, does a little bit of set
mathematics.  It first says "He wants me to merge all of the history of the
trunk into the branch", then it notices that most of the branch's history
overlaps the trunk's, and so that portion of the to-be-merged set is removed
as redundant, leaving only the trunk changes made since the branch was cut
in the set.  It looks like you aren't seeing that behavior, and I'd like to
better understand why.

On 03/25/2011 03:37 PM, Chris Johnk wrote:
> Both 1.6.16 and 1.5.1.
> 
> In 1.5.1, attempting the merge with no revision argument resulted in a
> crazy number of additions and updates, when in fact the branches were
> already almost exactly the same.
> 
> In 1.6.16, attempting the merge with no revision argument gave me
> nothing but tree conflicts. There was no way for me to get past these,
> other than to subsequently issue 'svn resolved -R *' which resolved
> the conflicts but left the branches unmerged.
> 
> Under both versions, the merge worked as expected when given the range
> of trunk revisions from which the changes were to be merged.
> 
> Chris
> 
> On Fri, Mar 25, 2011 at 12:15 PM, C. Michael Pilato
> <cmpilato at red-bean.com> wrote:
>> On 03/24/2011 05:14 PM, Chris Johnk wrote:
>>> In the svn 1.4 version of the book, the documentation of the merge
>>> command includes an example of merging trunk changes into a branch to
>>> keep the branch current with mainline development:
>>>
>>> svn merge -r 23:30 file:///tmp/repos/trunk/vendors
>>>
>>> This is an incredibly useful example, as it clarifies that when doing
>>> this sort of merge, you want to specify the range of revisions on
>>> trunk whose changes you wish to merge.
>>>
>>> Other examples I've seen in the current book simply show such a merge like this:
>>>
>>> svn merge file:///tmp/repos/trunk/vendors
>>>
>>> This form failed for me, because I am working on a branch that was
>>> created at revision 2150, and the merge command wanted to go all the
>>> way back to the earliest trunk revision without the revisions
>>> specified. As a result, merge was trying unsuccessfully to bring in
>>> changes that made no sense for the branch.
>>
>> What version of Subversion were you running when doing this?
>>
>> --
>> C. Michael Pilato <cmpilato at red-bean.com> | http://cmpilato.blogspot.com/
>>


-- 
C. Michael Pilato <cmpilato at red-bean.com> | http://cmpilato.blogspot.com/




More information about the svnbook-dev mailing list