[cvsnt] newbie branch/merge question

Nick Duane nickdu at msn.com
Fri Aug 11 19:31:39 BST 2006


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.


Our group is preparing to move from vss to cvs and I'm the one that is going 
to do the move.  One area that I plan on paying special attention to is 
branching/merging since that is probably one area that can either go 
smoothly or cause huge headaches based on your branching/merging design.

I read through the CVSNT docs and some of the previous posts on the subject. 
I also read through some of 
http://cvsbook.red-bean.com/cvsbook.html#Going%20Out%20On%20A%20Limb%20(How%20To%20Work%20With%20Branches%20And%20Survive). 
So at this point I have a beginners understanding of how branching/merging 
works (I think).  I still have a couple questions regarding what 
approach/design would be best to follow.

1. What's the best strategy to implement for branching/merging?  I know 
that's a pretty open ended question which by itself could have multiple 
correct answers.  In one of the posts I read the person said they *only* 
develop in branches.  Let me attempt to give an example in hopes that it 
might better describe my situation and possibly why I'm still unsure of the 
correct approach.  So we're moving from vss to cvs.  The current released 
version of our product is 3.7.2.  There is development underway on version 
3.7.3 and 3.8.  I don't plan on trying to bring over the entire history from 
cvs.  I want to start from the 3.7.2 code base.  After reading the docs I 
had some initial questions.  First of all it seems that all releases would 
have to be from a branch as opposed to the trunk.  Is this correct?  I don't 
see how you could ever get a release from the main trunk as that most likely 
would have other code changes in it.  For instance, you're about to put 
3.7.3 into QA so you create a 3.7.3 branch so that only fixes for the 
current feature set go into the release as opposed to additional features 
other developers are working on.  At some later point in time all bugs are 
fixed and you are ready to release.  You then merge this branch back into 
the trunk.  However the trunk has additional features in it so you could 
never get version 3.7.3 from the main trunk.  Is this correct?  Back to my 
situation.  I was thinking of creating an empty module.  Then I would create 
a 3.7.2 branch and copy over the vss code into this branch.  Then I would 
merge back into the trunk.  Obviously this procedure is not needed for this 
initial version, but I figured it might be good to treat all releases the 
same.  Then I would create a 3.7.3 branch and copy the 3.7.3 code into that 
branch.  I would then merge that back into the trunk.  And I would do the 
same for 3.8.  Comments?

2. When should you create a branch?  As soon as we do a release should we 
create a branch for the next release and develop in that branch?  Or should 
we develop in the trunk and only move to the branch at the point when all 
the features are completed for a release and we're ready to go into QA?

3. A support group is running CVS 1.11 server.  We can use this server 
supported by our support group or potentially run our own version of CVSNT 
on a server.  Is MergePoints enough of a benefit to warrant us running our 
own version of CVSNT?

Thanks,
Nick 




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