On Fri, 30 Aug 2002, Aaron Bannert wrote: > On Fri, Aug 30, 2002 at 09:47:28AM -0700, Justin Erenkrantz wrote: > > - As OtherBill pointed out, HEAD must remain 2.0. > > Maybe HEAD should be the development trunk, while we branch off > minor (and patch) revisions for stabalization.
HEAD needs to be the main development branch due to the way CVS works. Retrieving any version other than HEAD out of the repository requires patching back to the branchpoint, then forward along the branch. This means that you want branches to go away sooner rather than later, and you want to have HEAD the latest thing that new branches get created off. The root of the issue here, though, isn't how to use whatever tool is used. It is an issue of release management. If you can't decide that branch x is a stable branch, branch y is designed for new features x, y, z and we will allow adding new features until date d1, then stabilize the tree until it is ready, then release... you will never solve the problem and you will always end up with staggeringly long release cycles that no tool can fix. Yes, doing this is hard and requires a couple of people who are willing to keep it on track. But unless we can do this we will end up with every branch or revision being a matter of a completely new product, which is essentially what 1.3 to 2.0 is. I don't think release cycles that long are condusive to retaining developers or to producing a product that users are comfortable with upgrading from one version to another of. Another alternative would be to say that only changes that take no more than a few weeks or a month to stabilize are necessary now, so we would be fine just going along with the current HEAD and branching off previous releases if necessary for urgent bug or security fixes.