[Top][All Lists]
[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