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 firstname.lastname@example.org.
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