[cvsnt] Re: Merging branches with mergepoints

Detlef Marschall ich.ich at gmx.ch
Sat Dec 3 14:43:24 GMT 2005


Am 03.12.2005 schrieb Bo Berglund:

> On Sat, 3 Dec 2005 10:27:01 -0200, Gerhard Fiedler
> <lists at connectionbrazil.com> wrote:
> 
>>Hm... wouldn't it make sense for a branch to "inherit" all mergepoints from
>>the branch it was created from (prior to its creation)? So that, in this
>>case, B2 "knew" about (and considered) all mergepoints of HEAD up to 1.8?
>>Seems logical to me. I don't see a reason why it shouldn't.
>>
> Definitely *NOT*!!!!
> Such a presupposition from the server would completely ruin any
> possibilities of having several *independent* branches off of TRUNK...
> 
> If you create a branch off a certain branchpoint, weather on TRUNK or
> another branch, you assume that the code you write will be exactly
> based on the branchpoint plus your edits. Having the server automerge
> stuff that happens on TRUNK while you are working on the branch will
> completely ruin this isolation, which is why you create a branch in
> the first place...

Sorry, I don't understand. When you have a branch B1 and you change,
commit and merge your changes always to HEAD, then HEAD contains all
changes from the branch B1, whether you want to or not. When then split
a new branch B2 from HEAD and you must merge a change from B1 -> B2,
then is no need to merge all changes from B1 at the beginnig, that's a
bug. Your view is only true, when you not merge from B1 -> HEAD and all
branches are separate. For us, that's not the case.

> In my view, the only allowed way for edits on TRUNK *after* the
> branchpoint to get into my branch code is to explicitly give a command
> to merge in for example HEAD *into* my branch.

That's your view, but we work not in this way. HEAD is always only a
point from that we make branches. All Versions of our software are
branches. We do not develop in the HEAD, only in branches. We can't
divide our software into small pieces, it's a alway one paket. The
complete software is over 190mib in size. The sources are over 70mib in
size. The programming language is not C nor C++, it's a 4-gl, thats why
the compiled form is so big.
 
> When I do this I expect that whatever happened on TRUNK from my
> branchpoint will now be merged into my working branch so it is
> henceforth as if the branchpoint has moved up to the current HEAD
> revisions.

We explicit merge from the branch B1 to B2. When the branch B2 exist, we
merge never from B1 to HEAD, the way is always B1 -> B2 -> HEAD. There's
no exception from this rule. All changes in a previous branch must merge
through all later branches in the correct order.

If we create a new branch B3 then we merge always B1 -> B2 -> B3 ->
HEAD. I hope you understand now our problem. I know we develope not in a
normal way. But this is due to our software.

bye
Detlef



More information about the cvsnt mailing list