I have been using distributed version control systems for the last few years, but now I am going to have to use CVS. The process I want is something like:
- Each bug/feature is given a ticket in a ticketing system
- A developer is assigned to a bug/feature (if necessary a ticket will be broken into smaller tickets so that the developer to ticket relationship is one-to-one)
- The developer makes changes and associates them with the ticket
- At regular points in time a set of tickets are chosen for a release candidate The release candidate will be tested
- A release is built using a subset of the tickets from the candidate
- and the cycle starts again
My current, naïve plan is to
- put each ticket in its own branch off of the trunk
- create a branch for each release candidate
- merge the ticket branches into the release candidate
- when a release candidate is considered good enough merge it into the trunk
I have forgotten everything I used to know about CVS, but I have a gut feeling that tells me this is going to be a mistake. What performance or other types of problems am I going to run into? Is there a better way to selectively create builds based on a subset of the work done during a given period?