[cvsnt] Re: Merging branches with mergepoints

Bo Berglund bo.berglund at telia.com
Sat Dec 3 13:14:24 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.


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...

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.

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.

If this is done I believe CVSNT does a good job of book-keeping using
the mergepoints. You will get one pointing from TRUNK into your branch
and the next time you merge the backtracking will only go as far as
this mergepoint.

But I would not myself even allow using CVSNT if it by itself did
these automerge operations when merging back the branch!! Too
dangerous!

The proper way is:
1. Create working branch at some point in time

2. Work and commit stuff on this branch until done

3. If the TRUNK operations should be included, then merge HEAD into
the branch.

4. If this was done, then verify the code on branch to still be
working properly, essentially testing all aspects of the code while
still on the branch, but now with the updated TRUNK code also there.

5. When all is well, finally merge the branch back to the HEAD
revision.

With this sequence the code will be under control by the developer and
it can be verified easily and no bogus code changes gets into the
final result.



/Bo
(Bo Berglund, developer in Sweden)



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