info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Rephrasing: question about merging branches


From: David Wood
Subject: Re: Rephrasing: question about merging branches
Date: Tue, 4 Nov 2003 12:41:22 -0500

I would say your ascii graphic is admirable!

What you are saying matches what I'm seeing in tests, and I think I get it 
now.

I believe my problem has been a silly confusion with the way update -j -j 
works. 

I understand a merge between 1 and 4 (and for that matter, a reverse-merge 
between 4 and 1) well enough.

Essentially, I mistakenly envisioned a merge between 3' and 4 - rather 
than 2 and 4. Hence my fear about loss or mistreatment of changes before 
the child-to-child merge. 

I think what all this means is that branchB is now essentially merging 
against branchA (having received common chagnes by, and resolved conflicts 
with) branchA... and the merge delta with the trunk must now use branchA 
(at point 2) as a reference point in order to correctly reflect changes 
against the trunk.

It is potentially confusing, but you have made it seem very simple. Thank 
you!

-David

Jamie Wellnitz <address@hidden> wrote on 11/04/2003 11:50:35 
AM:

> Sorry for the ascii graphic in advance . . .
> 
> If you have (* indicates merge point):
> 
> branchA and branchB originated from trunk at point 1.
> branchA merged to trunk at point 2 on branchA and 2' on trunk.
> branchA then merged to branchB at point 3 on branchA and 3' on branchB.
> Now, we want to merge branchB (point 4) to the trunk (4').
> 
>               branchA  2    3
>             /---------\-----\-------->
>          1 /           \     \           4'
> trunk ------------------*---- \ ---------*---->
>            \            2'     \        /
>             \-------------------*------/-->
>               branchB           3'     4
> 
> I think you want the common ancestor of the current branchB tip and
> trunk tip.  That would be point2 on branchA.  (This is assuming you
> did a full merges, not just a few changes, from A->trunk and A->B.)
> So assuming you put tags down to keep track of the merge points, you
> might try (on the trunk):
> 
> cvs update -j point2 -j point4
> 
> It looks like my point2 is your "first child merge point" and "second
> child" is the tip of branchB (where you put a tag before the merge).
> 
> Which changes before the "first child merge point" are you wondering
> about?
> 
> Thanks,
> Jamie Wellnitz
> address@hidden
> 
> On Tue, Nov 04, 2003 at 11:06:44AM -0500, David Wood wrote:
> > Let me try to put it another way.
> > 
> > I have a parent branch, and it has two child branches. If I want one 
child 
> > to merge to the parent, and then to the other child, how does that 
other 
> > child later merge to the parent as well?
> > 
> > Is it (on the parent): update -j first_child_merge_point -j second 
child
> > 
> > If so, what happens to changes from before the 
first_child_merge_point?
> > 
> > -David
> > 
> > 
> > _______________________________________________
> > Info-cvs mailing list
> > address@hidden
> > http://mail.gnu.org/mailman/listinfo/info-cvs




reply via email to

[Prev in Thread] Current Thread [Next in Thread]