info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Branching strategy question


From: Todd Denniston
Subject: Re: Branching strategy question
Date: Tue, 15 May 2007 16:57:10 -0500
User-agent: Thunderbird 1.5.0.10 (X11/20070221)

Tim Velten wrote:
Hi,

We do all development on branches. The trunk represents the code that is currently in production. All doc I read is based on development going on in the trunk, but I don't see how that can work when there are always 2 or 3 releases in progress at any one time.

Each branch is merged into the following branch on a regular basis. So for example, we have an April patch branch, a June branch, and an August branch in progress. At certain points we merge April patch branch into June branch and June branch into August branch. When we create the October branch, it is created from the trunk and then August branch will be merged into October branch.
So here is my question ...

When I create October branch I know that it should look exactly like August. So if I created October branch from August branch instead of the trunk I would eliminate the August to October merge. But then that implies that December branch would be created from October, etc ... and that does not seem right. So should I stick with the original strategy and always branch off of the trunk ?


To keep yourself sane, probably.
But you should understand my Bias, I tend to use branches only for two things:
1) a release (production code) that may have to be maintained with extremely minimal updates, i.e., customer wants version X with ONLY change Y. 2) very disruptive changes, i.e., things that will cause the other developers trouble until the change is consistent within itself.

well then there is 3) when we need to get disruptive functionality A out for release A1 and functionality B out for B2, but they need developed at the same time, then branches A and B will be created, and when each is done then they merge to the trunk and at that point figure out how to merge logically with each other.

everything else is in the trunk.

Thanks,

Tim Velten
IBM Global Services
859 635 1785
address@hidden

Sorry this does not answer the question you asked, but I hope it is pointers to information that will help _you_ reduce your pain.

have you seen the following links?
http://ximbiot.com/cvs/wiki/index.php?title=CVS_FAQ#What_is_the_best_branching_practice_to_use_with_CVS.3F
http://www.cmcrossroads.com/bradapp/acme/branching/

I know you have your current process, but it sounds like you are already experiencing pain with it, hopefully it is not carved in marble. "Streamed Lines" discusses different branching strategies and IIRC some advice on which worked better in different scm tools. Having "Released/Production" code in branches with CVS, tends to work better than having the never ending development branches, some SCM tools may work better the other way around.

I get the feeling you might need to read at least one of the following:
http://www.cmcrossroads.com/bradapp/acme/branching/pitfalls.html#BranchAholic
http://www.cmcrossroads.com/bradapp/acme/branching/pitfalls.html#SpaghettiBranching
http://www.cmcrossroads.com/bradapp/acme/branching/pitfalls.html#NeverEndingBranch

Good luck.
--
Todd Denniston
Crane Division, Naval Surface Warfare Center (NSWC Crane)
Harnessing the Power of Technology for the Warfighter




reply via email to

[Prev in Thread] Current Thread [Next in Thread]