CVS, or the Concurrent Versions System, allows for a robust version control system to be in place to insure control over changes to a web site as it is being designed and developed, during testing and qa and post-production during content management and improvements.
While there are many web developers using cvs, it is mostly known for its use in software development projects. However, conisdering the dynamics of the 21st century web site, and the proliferation of web applications, cvs should be a consideration even for the independent developer who occasionally uses sub-contractors for projects.
CVS, found here, is generally already installed on your *Nix servers, including OS X. Clients are available for numerous platforms (Windows, Macintosh and *Nix), and are built in to some web development IDEs (such as Macromedia Dreamweaver). The CVS home also includes extensive documentation on how to use cvs on your server.
There are three pieces to getting started on a cvs project:
1) If starting a new cvs repository with existing files, you should do a master backup of the code, import it into a new cvs tree, and then delete the old directory. This insures you will not accidentally edit cvs and non-cvs files.
2) If starting with a new project, decide on the structure of the filesystem first. For example, for a new client at www.newclient.com, you setup a development, staging and production environment. These would be on the filesystem as:
A) /home/sites/www.newclient.com/htdocs/ (for www.newclient.com in production),
B) /home/sites/staging.newclient.com/htdocs/ (for staging.newclient.com where all finalized code is tested prior to release to the production site,
C) and /home/sites/devel.newclient.com/htdocs/ (for devel.newclient.com, where all of the true design and development takes place.)
3) Once setup and tested, insure those participating in the development work have a client properly configured. Clients for Linux, Macintosh and Windows can be found at CVSGui.
The key benefit of using cvs is obviously source code control, and that includes auto-version control, with version numbering (v 1.0, 1.1, 1.2 and so on) and the critical feature of rollback, which allows you to rollback changes that have been put into place but are failing to meet a standard, or if a hidden bug is discovered.