Concurrent Versioning System
Download from ftp://ftp.cvshome.org/pub/
gunzip cvs-x.x.tar.gz
tar -xvf cvs-x.x.tar
cd cvs-x.x/
./configure
./make
su -l (enter password) #switch user to root
./make install
check to make certain CVS is installed:
which cvs
/usr/bin/cvs
Create the cvsroot for a user and master repository:
You can choose to place your cvsroot almost wherever you want. I've historically placed it in /home/ to make regular backups easier. You might have your own reasons to place it where you want.
su -l
adduser cvs
rm -rf /home/cvs
mkdir /home/cvs
It can be convenient to enable user permissions by creating a 'cvs' group in /etc/group, and then adding various users to that group. While adding permissions to the cvsroot directories to the group 'cvs'.
Set a CVSROOT:
You need to set the environment variables, so that CVS knows where to find the root library.
export CVSROOT=/home/cvs/ #for bash users
setenv CVSROOT '/home/cvs' #for csh, or tcsh users
this can also be added to /etc/profile for system-wide access
This can also be set automatically upon login by adding a line to your ~/.bashrc file (or whichever stores your shell environment variables).
Check to make sure that it's set properly:
echo $CVSROOT
/home/cvs/
As you may have noticed, the CVSROOT variable is set by the client, and not the server. This enables you to easily use multiple CVSROOTs, based on permissions, partitioning, etc.
Remote access:
The CVS slient can also be configured to use a cvsroot on a remote server, and to tunnel through SSH. The remote client needs to have these entered at the command line, or read in from the .bashrc file:
export CVSROOT="user@host.domain.tld:/pathto/cvsroot"
export CVS_RSH="/usr/bin/ssh"
All commands should operate as usual, but each will require a password in order to proceed.
Bad CVSROOT error:
A common, and frustrating error to run into while using this method, because it's not well documented.
cvs checkout: is set for a remote access method but your
cvs checkout: CVS executable doesn't support it
cvs [checkout aborted]: Bad CVSROOT.
Your problem most likely exists with the client version of the cvs binary. It's probably version 1.11.1 or previous, upgrading to 1.11.2 should take care of this.
