[NOTE: The CVS server is shut down; I can't keep worrying about pserver security.]
We are currently using CVS for source control. You can perform a readonly checkout of our source control repository via:
# cvs -d :pserver:firstname.lastname@example.org:/usr/local/cvsroot login # cvs -d :pserver:email@example.com:/usr/local/cvsroot co .
If you are a committer you would do this:
# CVS_RSH=ssh cvs -d :ext:USERNAME@burstproject.org:/usr/local/cvsroot co .
You can view the latest sources via CVSTrac:
You can also view a timeline of recent changes via CVSTrac:
I know as well as anyone the defects of CVS.
For example, in a project with many active committers, the lack of atomic checkins would be catastrophic. But in a situation with just a few committers (or just one), who will never attempt branching, the fundamental defects of CVS aren't as crippling.Let us not lose track of the many benefits of CVS:
Perforce is arguably the best (certainly, among the best) of all available source control systems, both open source and commercial. They give gratis licenses to any open source project. Perforce is available for all operating systems of (my) interest. It is easy to install, use, and administer. It has several good GUIs, good integrations, and excellent documentation and support. But they don't have anything like "CVSTrac".
Subversion is on a crusade to rid the world of CVS. They aren't there yet. Certainly, its fundamental operations may be markedly superior to CVS, but that is already true of practically every CVS alternative available, except Visual SourceSafe. It does have "Trac", which is similar to CVSTrac; this is one of Subversion's few distinguishable benefits over other source control systems.
Unfortunately, Subversion is a complete bear to install and set up:
# sudo fink install svn The following package will be installed or updated: svn The following 44 additional packages will be installed: apache2 apache2-common apache2-dev apache2-mpm-worker apr apr-common apr-shlibs daemonic db42 db42-shlibs expat expat-shlibs gawk gdbm gdbm-shlibs gdbm3 gdbm3-shlibs gmp gmp-shlibs guile guile-dev guile-shlibs libxml2 libxml2-bin libxml2-shlibs neon24 neon24-shlibs python python23 python23-shlibs python23-socket readline readline-shlibs ruby ruby18 ruby18-dev ruby18-shlibs svn-shlibs swig swig-shlibs tcltk tcltk-dev tcltk-shlibs texinfo
Most people don't want to upgrade their OS to the bleeding-edge versions of these many common libraries that Subversion requires. Most people also do not want to wrestle with building it from source, and the project does not offer binary packages for a wide spectrum of operating systems. Subversion also does not yet have the breadth or quality of GUIs and integrations as CVS. For example, Apple Xcode only supports CVS and Perforce.
Lastly, there are quite a few interesting "boutique" source control projects now, such as monotone, arch, darcs. However, these are all lacking in associated web interfaces, IDE integrations, and so on.
Fortunately, because CVS is so ubiquitous, all alternatives support CVS import. So it won't be hard to migrate when a compelling alternative arrives.