[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Using CVS the right way
From: |
Jim.Hyslop |
Subject: |
RE: Using CVS the right way |
Date: |
Fri, 12 Mar 2004 10:12:11 -0500 |
m0llbuz_ wrote:
> I work in a company where speed is an essential ingredient.
> Releases occur frequently and irregularly (from one release
> per month up to two per week) and mostly only a part of the
> code base is affected in each release.
>
[...]
> We are currently doing all development on the main trunk
> (except medium to long-time projects that affect other
> projects - these we put in branches) and we also put bug
> fixes in the trunk. It works quite well, but sometimes it's
> hard to know what files are to be released to the testing
> environment (patch or something else?).
>
> What is the best way to use CVS with this scenario? We want
> to be fast and not get slowed down with a lot of merging,
> branch creation, etc. We have talked about creating a patch
> branch, but it will get tedious to create a new patch branch
> efter each release.
So don't create the patch branch automatically - just create it if and when
a patch is required.
Creating a branch is trivial. *Maintaining* a branch can be time consuming.
Therefore, do not create branches "in case they are needed", create them
when they are actually required.
> Another problem is that several projects
> can be going on at the same time with different start dates
> and release dates.
Multiple, simultaneous paths of development means there *will* be merging,
just the same way that the rotation of the earth means there *will* be night
and day. You cannot avoid it, you cannot prevent it, so make sure you allow
time for it.
*If* everyone is checking in frequently, and refreshing their source from
the repository frequently, then merges will go quite quickly (by
"frequently" I mean at most once every two or three days). I've found that
the amount of time required for a merge increases non-linearly the longer
you wait between updates.
--
Jim Hyslop
Senior Software Designer
Leitch Technology International Inc. (http://www.leitch.com)
Columnist, C/C++ Users Journal (http://www.cuj.com/experts)