Hi folks -
We're trying to decide on a simple branching strategy for our team. So far
here's what we're planning - please comment on the approach to help us
start small and grow as we learn:
So far, we only use CvS to version individual files (checkout, work on
files, check them back in when you've tested your changes) - currently we
don't use any TAGs, or branches at all. This works ok but we'd like to
improve that process. Here's the proposed flow:
Every Wednesday we have scheduled delivery date. I'm thinking that just
prior to the final build create a /Branch - I'm thinking of it as a
special TAG that marks the completion of that development cycle. Do the
build using that /Branch, and deploy it accross the infrastructure (DEV,
QUAL, PROD, respectively).
From that point forward, any code fixes should be done to the /Branch code.
Any NEW development should continue on the /main trunk (and hopefully there
won't be many mistakes - that I'm sure would complicate this for us).
Thus we'd have an early branch each time we build/deploy and any fixes to
that code base would be performed on that /Branch, while new development
would continue in parallel on /trunk. What I'm not sure about is: if we
do have fixes when do we need to merge them into the /main trunk code?
What happens if we gave fixes on the /Branch, we merge them into the /trunk
and we have OTHER fixes to make to the prior release?
Your comments will be appreciated -
THanks,
James