Getting started

Finding a CVS Client

There are plenty of CVS tools out there. If you're using a unix-based system (including Linux or Mac OSX), odds are very good that there's already a command-line version already installed and available for use.

If you want something a bit more user friendly there's quite a few graphical interfaces that work quite well. SmartCVS is available for quite a few different operating systems and supports secure connections via ssh.

In this document, I will include instructions for both the command line CVS and SmartCVS.

The first thing you need to do is to create a working space for your copies of the files to live. This is often referred to as a sandbox.

In order to create your own sandbox to play in, you must know where to find the repository or CVS root directory, where the master files are kept. Within this repository are modules, seperate components that contain self-contained projects or other logical groupings of files.

Create a directory where you want your sandbox to be, then in that directory, run the following command:

    cvs -d username@machinename.uwaterloo.ca:directory checkout module
You will need to find out the proper server, root directory and module to replace machinename, directory and module in the command above.

Once that command finishes, you will see you now have a copy of all the files of that module or project in your current directory, plus one other thing: A directory called CVS that contains information about the module, and where to find the repository server. You don't need to do anything with that directory, but it does need to be in your sandbox so that cvs can communicate with the server in the future.

This process is a bit more complicated in SmartCVS. This may be set up for you by your administrator.

Creating the final product

It's important to always make sure that you have the latest version of all the files before creating the final product.

Because of the nature of cvs, other people can make changes to the files in their own sandbox, and your own sandbox will need those changes.

Update your sandbox with the most current version of the files from the server:

    cvs update

On SmartCVS, you can do this by selecting the top folder (if there is more than one) in the Directories pane on the left side, and then selecting Modify->Update from the menu, or by right clicking (or CTRL-clicking if you have no second mouse button) on the top folder, and selecting Update from the context menu that appears. A window will pop up asking you some update-related options. Just accept the defaults and click on OK.

You should now have the latest source files (LaTeX, C code, etc.) required to create the final product. How that is accomplished of course depends on what sort of files you're dealing with.

Making changes

If you need to modify the files, first make sure that you've got the latest version of the files you want to change. (See Creating the final product above on how to get the latest versions of the files.)

Once you have the latest files, you can simply edit them as you normally would.

To sumbit the changes back to the server, so that they are available for everyone, you can run one command for all the files in the current project:

    cvs commit
You will be asked for a comment about the changes you made. It's always a good idea to supply some reasoning for why you made changes to the files, though you can decide not to comment if you really want.