CVS is client/server software that runs on Unix and Linux platforms, including Mac OS X. The CVSNT program is a CVS-like server that runs on Windows, and there are CVS clients for Windows, Mac (including pre-OS X Macintosh), Linux, and Unix. When you install CVS on a Unix/Linux server, you automatically get both server and client software. To access CVS across the network from any Unix/Linux machine, install CVS on the machine in question. The server and (command-line) client software are one and the same.
CVS is available from http://cvs.nongnu.org. It is also available as an installation package with many GNU/Linux distributions, including Debian, Red Hat, and SUSE.
A Windows-compatible CVS server is available at http://www.cvsnt.org. This server is not identical to the Unix server, but the differences are clearly listed in the CVS NT FAQ, and an installation guide is available on its web site.
Is CVS Installed?
If you are running Mac OS X, Cygwin, Unix, or Linux, you may already have CVS installed. If it’s installed and in your path, typing cvs at the command line produces the results shown in Example 2-1.
Example 2-1. CVS help display
$ cvs Usage: cvs [cvs-options] command [command-options-and-arguments] where cvs-options are -q, -n, etc. (specify --help-options for a list of options) where command is add, admin, etc. (specify --help-commands for a list of commands or --help-synonyms for a list of command synonyms) where command-options-and-arguments depend on the specific command (specify -H followed by a command name for command-specific help) Specify --help to receive this message
The Concurrent Versions System (CVS) is a tool for version control. For CVS updates and additional information, see the CVS home page at http://www.cvshome.org/ or Pascal Molli's CVS site at http://www.loria.fr/~molli/cvs-index.html
If you already have CVS installed, you can skip this section and jump ahead to “Building Your First Repository.”
Graphic User Interfaces
If you prefer GUI clients, I recommend a visit to http://www.wincvs.org. There you’ll find gCVS, WinCVS, and MacCVS, which are GUI clients for Unix and GNU/Linux, Windows, and Macintosh (pre-OS X), respectively.
If you are a Macintosh user running OS X, you can use the command-line version of CVS that comes with Mac OS X and can be downloaded from http://developer.apple.com, or you can install the latest version of the standard Unix CVS server and client. To get a shell prompt in Mac OS X, open the Terminal application (which is located in /Applications/Utilities).
To compile and install the latest version of CVS, you need the free Xcode install (http://developer.apple.com/tools/xcode/) for Mac OS X, which includes the GNU C compiler and other tools needed to compile source code.
A list of additional GUI clients is available in the CVS Wiki (http://ximbiot.com/cvs/wiki/index.php?title=CVS_Clients).
If you plan to use CVS over a network, I recommend using the Secure Shell (SSH) protocol to establish secure connections between clients and server. You must install compatible versions of SSH on your client and server machines. For clients, you may need to find a version of SSH that can be used from the command line. See “Accessing Remote Repositories” later in this chapter for more information on this topic.
The OpenSSH web site (http://www.openssh.com) is a good starting point for information on SSH and SSH clients. You may also want to read SSH, The Secure Shell: The Definitive Guide, by Daniel J. Barrett et al. (O’Reilly). For more than you ever wanted to know about SSH, see the FAQ at http://www.openssh.org/faq.html. The Google list of SSH documentation is at http://directory.google.com/Top/Computers/Internet/ Protocols/SSH/Documentation/.
Most Unix and Linux systems have an SSH client installed as part of the standard set of programs. Mac OS X also comes with an SSH client preinstalled. If it is not installed automatically, an SSH client is usually available in your distribution as an optional program.
The web site for MacCVS has a useful article on SSH for pre-OS X Macintosh users at http://www.heilancoo.net/MacCVSClient/MacCVSClientDoc/ ssh-classic.html. The instructions are useful regardless of which Macintosh CVS client you use.
To find an SSH client for Windows, start from the OpenSSH web site on Windows clients (http://www.openssh.com/windows.html).
Once you have installed SSH on both the server and the client computers, generate keys for the clients and add their public keys to the server. This step lets your users run CVS without needing to give their password for every command.