The Science of Debugging
Chapter 3


3.2 CVS


CVS stands for Concurrent Versions System. It was developed from a *nix background and though interfaces exist for it, it is at heart a command-line system. CVS has a good mix of individual user controls and project management features, focusing on the source code and changes to it. It can be easily set up to run both locally and remotely (and indeed, most open source projects on the net have anonymous cvs access to their current 'official' source), and the interface can be managed in a secure way; using ssh for remote downloads, or per-user access restrictions.

All things CVS can be found at their offical website, http://www.cvshome.org, and a good place to learn about its features, download interfaces and patches, and read the CVS FAQs is at http://www.cvshome.org/docs/

3.2.1 Getting CVS


It comes in many operating-system specific versions, though running the server is not recommended for windows systems:

Disclaimer from cvshome.org
"There are two ways to run CVS on Windows 95/NT. The first is as a client, talking to a CVS server on a Unix box. This is the recommended setup and is commonly used. The second way is known as "local" or "non-client/server" CVS. This lets you run CVS if you have only Windows machines. However, due to issues (a) with local CVS on Windows, and (b) with the suitability of Windows as a server operating system in general, we would generally recommend this more to try out CVS and get a feel for it rather than for production use."

If you still dare, http://www.cvshome.org/dev/codewindow.html has the binaries and source code for people wishing to run an all-windows system


Of course, if you're running Linux, you've probably already got a copy of it installed and running. Most distributions include a copy of CVS in their 'Development' kit, which you've probably installed when you were first installing the entire system. To see if that's the case, just type 'cvs -v' at the command prompt and see if it returns any information. Otherwise, you have a few choices; the page at http://www.cvshome.org/dev/codelinux.html should have a link to the most updated version of the code, either in source or binary form, and they go so far as to create rmp packages for ease of installation.

I have been using CVS for years, and I find that I'm most comfortable running both the server and clients for CVS on a linux machine. You may want to try out the windows versions, and the interfaces for them, but I will not be covering them here, so buyer beware. If you stick to using the windows client in text-mode only, you'll find things remarkably similiar.



Index
3.1 What is Version Control Software? 3.2.2 CVS Root Directory