[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Is merging branches reliable?

From: Ryan Schmidt <subversion-2006q2_at_ryandesign.com>
Date: 2006-05-06 14:24:23 CEST

On May 6, 2006, at 11:10, Baz wrote:

> On 5/6/06, Zsolt wrote:
>
>> I'm not sure what you mean but I give you an example.
>> - 1-may I make a new-branch (testbr) on a trunk. The file a.java was
>> modified on 15-apr.
>> - I modify a.java on the trunk on the 2-may.
>> - On testbr, a.java IS NOT modified.
>> - On 4-may I merge testbr to the trunk.
>> If the a.java testbr overwrites a.java on the trunk it has nothing
>> to do
>> with merge. The entire content of the branch overwrite the trunk, the
>> version control system is just USELESS.
>
> It sounds like you asked svn to apply the differences between the
> branch and the trunk to the trunk, when what you should have done was
> apply the changes *within* the branch to the trunk. ie:
>
> in a working copy of the trunk:
> svn svn merge http://svn.example.com/repos/testbr http://
> svn.example.com/repos/trunk
> (wrong: will just synch up the working copy with the branch)
>
> svn svn merge -r $START_OF_CHANGES:HEAD
> http://svn.example.com/repos/testbr
> (right: will merge the changes that happened on the branch)

Agreed. Calling the system "useless," when the rest of us have been
using it successfully, many of us for years, is not constructive.
Merging can be a complicated concept to wrap one's mind around, which
can result in some missteps initially, but once you understand how it
works, I assure you it works well.

In all the emails that have been exchanged in this thread so far, we
have yet to see the actual commands you executed to perform your
merge. But I think Baz is probably right: that you told Subversion to
merge the wrong things, and it happily did, and the result was not
what you wanted. Take a look at his examples to see how merging is
usually used.

Here's an explanation I wrote before [1] about how merging works.
Perhaps this will help make it more clear how to use it correctly?

On 2006-01-05 Ryan Schmidt wrote:

> Understanding merging can be confusing at first, and once you do
> understand it, it can be hard to explain to someone else, which is
> why sometimes even reading the documentation doesn't help. But here's
> an explanation I've used before, which I've been told was helpful:
>
> Think of "svn merge" like this. It operates on three places, A, B and
> C. It makes a list of steps to transform A into B (or: transform
> "from" A "to" B, to match it up with TortoiseSVN's dialog), and then
> performs that list of steps on C. C is a working copy, and A and B
> are often different revisions of a URL in the repository, or two
> different URLs in the repository (two tag directories, for instance).

On the command line, the C part is optional, and if omitted, the
current directory is used, which must be a working copy.

[1] http://svn.haxx.se/users/archive-2006-01/0149.shtml

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Sat May 6 14:25:36 2006

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.