David Hofmann wrote:
> My company looking at setting up some kind of versioning control software. 
...
> I understand just enough to be dangerous with CVS.

I was going to say, "watch out for subversion's license" (free only for free
projects with public access; otherwise a paid commercial license is required),
but it looks like they've changed it:

    http://subversion.tigris.org/servlets/LicenseDetails?licenseID=9

    http://www.opensource.org/licenses/apachepl.php 


I've been using CVS for personal and (mostly) solo consulting projects for
several years now, and it gets the job done.  I especially like the simplicity
of RCS repository files (so I can commit the cardinal sin of hacking them ;-).
I do all my work on the trunk, and use tags for releases.  I don't have the need
to support older versions; the support solution is "upgrade to the latest".


I prefer Cygwin for Windoze clients, primarily because of Bash.  I maintain my
own Cygwin install snapshot and upgrade machines only when absolutely necessary.


Another advantage of CVS is that it's simple enough that you can read one book
and you'll know enough:

    http://cvsbook.red-bean.com/


There's lots of software out there that facilitates and/or integrates with CVS.
Because CVS is simple, you can even write your own:

    http://www.holgerdanske.com/dpchrist/software/index.html

        dvs -- integrates CVS projects with Unix users and groups to
            provide primitive (and insecure) isolation of projects and
            developers.

        cvsenv -- launches a Bash shell with environment variables for
            connectivity to a CVS project. 

        cvsdist -- tags and tarballs a CVS project for distribution.


But, if you want to use a branch/merge development process, I implemented one
for a client using the commercial version control product they were already
using (MKS Source Integrity):

    http://www.mks.com/

To me, the main advantage of MKS SI over CVS (and RCS) was that MKS SI
implemented version control on sets of files ("project"), and provided tools for
easily diff'ing, branching, and merging them.


HTH,

David

Reply via email to