[cvsnt] Re: Merging branches with mergepoints

Detlef Marschall ich.ich at gmx.ch
Fri Dec 2 19:02:58 GMT 2005


Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.


Am 02.12.2005 schrieb Glen Starrett:

> Detlef Marschall wrote:
>> A branch is split from the HEAD --> B1. We made changes in that branch and
>> merging them to the HEAD "cvs up -jB1". For every merge we become a
>> mergepoint in the HEAD, that's ok.
>> 
>> Later we split another branch from HEAD --> B2. All mergepoints from branch
>> B1 are lost in branch B2. In my opinion is this a bug. When we merge from
>> branch B1 to branch B2 cvs will merge all changes from the start of B1 until
>> the last revision in the Branch B1 instead only the last changes.
> 
> So are you saying this happens with every B1 -> B2 merge, or just the 
> first?  

Only the first.

> It sounds like you're going a little convoluted -- try merging in your
> changes to HEAD then restart a B1a and B2a branches at the same point
> and go from there with your B2 -> B1 -> Head merging, it probably
> straighten out the common ancestor issue you're having (assuming that
> is indeed the problem). 
> 
> Short of actually reproducing what you're taking about, I think that
> should help. 

OK, a more detailled example.

We start, for example, at HEAD rev. is "1.3". From that point we split a
branch "B1". The first change in B1 became the revision "1.3.2.1" and so
on.

We made changes in that branch and every change is merge in the HEAD
with the command "cvs -jB1". For every merge we become a new revision
and every revision know its mergepoint. Now we are at revision, for
example, "1.8", the mergepoint for that is "1.3.2.5" from branch B1.
Here we split a new branch "B2" for a new Project or Version, what ever. 

Branch B1 is still in development (correct errors etc.). All changes in
branch B1 must merged to branch B2 and then to HEAD, the order is always
from B1 to B2 to HEAD.  In branch B2 we make also changes. Every change
is merged to HEAD. Now we must correct an error in branch B1. This
change must merged to branch B2.

We commit the change in B1, then we merge to B2 "cvs -jB1 test.p". In
that case CVS says :

-----------------------
retrieving revision 1.3
retrieving revision 1.3.2.6
Merging differences between 1.3 and 1.3.2.6 into test.p
-----------------------

CVS will merge all changes from the start of branch B1 (rev. 1.3) until
the last change (rev. 1.3.2.6). Remember, at the start of B2 all changes
from B1 are in B2 including revision "1.3.2.5". After that, the source
is a mess. That is, in my opinion, a bug.


I hope that make sense to you.

bye
Detlef
-- 
Wofür niemand etwas kann, nicht einmal die Römer



More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook