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

Re: issue-2897(reflective merge solution)

From: Mark Phippard <markphip_at_gmail.com>
Date: Mon, 4 Aug 2008 14:03:37 -0400

On Mon, Aug 4, 2008 at 1:48 PM, Julian Foad <julianfoad_at_btopenworld.com> wrote:

>> Solution 1: One can use '--reintegrate' switch to 'merge' command, but
>> it has lots of expectation on merge-target, which makes it unusable on a
>> feature_branch with renamed subtrees which is common when someone does a
>> refactoring there.(issue-3128).
> The restriction that makes "--reintegrate" unusable with sub-tree
> mergeinfo is something we could fix. It should check whether the subtree
> mergeinfo meets the criteria for what situations the command can handle.
> Currently it doesn't attempt to check this, and just assumes the
> merrgeinfo doesn't meet the criteria.
> I know solution 2 can handle many more general cases, but, in the simple
> cases that "--reintegrate" is intended to handle, does your solution 2
> achieve the same result, or does it have a different concept of what is
> the right result?

Reintegrate has another problem and that is that it is not conducive
the continue working on the branch after it is reintegrated. IOW, set
aside the subtree mergeinfo problem and assume you do not have that.

After you run reintegrate to merge a branch back to trunk, you really
need to delete and re-branch if you want to keep working on it. If
you don't you have some problems:

1) If you try to synch your branch with trunk again it no longer works
because now you have a reflective merge situation from trunk to the
branch. I am not sure if you can add the --reintegrate option in this
direction. If you can, that would be one solution. But it would be
weird to suddenly change the way you were merging.

2) If you do not somehow successfully do #1, then --reintegrate will
not work properly (when you want to put the latest changes from branch
back to trunk). This is because --reintegrate has no way to know to
use a newer revision from trunk when doing the merge. Basically, it
always looks at the last revision you merged from trunk to the branch.
 If you have not done any more merges, then it is going to try to
merge everything again from the branch.

Anyway, do not mean to sidetrack this thread. I am just pointing out
that there are several things that would have to be "fixed" about
reintegrate for it to be the only solution to this problem.

Mark Phippard
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-08-04 20:04:05 CEST

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

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