[cvsnt] newbie branch/merge question

Nick Duane nickdu at msn.com
Sun Aug 13 15:58:12 BST 2006


Thanks.  So I take it HEAD is another name for trunk?

Nick

"Tony Hoyle" <tony.hoyle at march-hare.com> wrote in message 
news:ebipb2$f2h$1 at paris.nodomain.org...
> Nick Duane wrote:
>> 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
>
> It depends on how you develop and what works for you.
>
> The basic model is promotion.. so you have development of HEAD, testing 
> branch, release branch (sometimes more levels).
>
> In this model all work goes on it HEAD, and when a particular programmer 
> has finished some work he promotes to testing by merging his code into it 
> (possibly using bugids or limited to a module so he doesn't merge code 
> from other developers).
>
> Also in this model no commits are ever done onto the branches, only 
> merges.
>
> Another model is parallel development... cvsnt itself works like be that - 
> development (2.6) on HEAD, stable (2.5) on 2_0_x, both branches work in 
> parallel and periodically new code in 2_0_x is merged back into HEAD.
>
> Mergepoints make both models a lot easier and the older document will not 
> have mentioned those.
>
>> 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
>
> Depends on your development cycle.  If you can reasonably code freeze and 
> set a release date then it's possible to do it on one branch.
>
> Creating a new branch means you're more flexible since your developers for 
> 3.7.3 can be working at the same time as your developers for 3.7.4.
>
>> 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
>
> Pretty much.  Once you have a 3.7.3 branch that is where you get the 
> releases for that release.
>
>> 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?
>
> That doesn't sounds like it's likely to work.
>
> Start with one codebase - preferably what you're working on or latest 
> release, and import that the repository.  Branch that as its version 
> number, so you for example have development (HEAD), and stable (3.8) - 
> that is your starting point.
>
> I can't think of a sensible way to put older releases in as you'd need the 
> branch points and differences of each file - which you won't have if 
> you've been using vss.
>
> There is a script - vss2cvs - that is supposed to do this kind of thing. 
> Try that first.
>
>> 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?
>
> That's up to you.  Both approaches work, but without knowing your 
> development cycle I couldn't recommend one over the other.
>
>> 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?
>
> IMO branching without mergepoints is working with one hand tied behind 
> your back.
>
> Tony 




More information about the cvsnt mailing list