Table of Contents
The cvsnt repository stores a complete copy of all the files and directories which are under version control.
Normally, you never access any of the files in the repository directly. Instead, you use cvsnt commands to get your own copy of the files into a working directory, and then work on that copy. When you've finished a set of changes, you check (or commit) them back into the repository. The repository then contains the changes which you have made, as well as recording exactly what you changed, when you changed it, and other such information. Note that the repository is not a subdirectory of the working directory, or vice versa; they should be in separate locations.
cvsnt can access a repository by a variety of means. It might be on the local computer, or it might be on a computer across the room or across the world. To distinguish various ways to access a repository, the repository name can start with an access method. For example, the access method :local: means to access a repository directory, so the repository :local:/usr/local/cvsroot means that the repository is in /usr/local/cvsroot on the computer running cvsnt. For information on other access methods, see the section called “Remote repositories”.
If the access method is omitted, then if the repository does not contain @, then :local: is assumed. If it does contain @ then :ext: is assumed. For example, if you have a local repository in /usr/local/cvsroot, you can use /usr/local/cvsroot instead of :local:/usr/local/cvsroot.
The repository is split in two parts. $CVSROOT/CVSROOT contains administrative files for cvsnt. The other directories contain the actual user-defined modules.
There are several ways to tell cvsnt where to find the repository. You can name the repository on the command line explicitly, with the -d (for "directory") option:
cvs -d /usr/local/cvsroot checkout yoyodyne/tc
Or you can set the $CVSROOT environment variable to an absolute path to the root of the repository, /usr/local/cvsroot in this example. To set $CVSROOT, csh and tcsh users should have this line in their .cshrc or .tcshrc files:
setenv CVSROOT /usr/local/cvsroot
sh and bash users should instead have these lines in their .profile or .bashrc:
CVSROOT=/usr/local/cvsroot export CVSROOT
It is common for cvs frontends to set this up automatically. On most frontends there will be a dialog box which prompts you for the CVSROOT when it is first configured.
A repository specified with -d will override the $CVSROOT environment variable. Once you've checked a working copy out from the repository, it will remember where its repository is (the information is recorded in the CVS/Root file in the working copy).
The -d option and the CVS/Root file both override the $CVSROOT environment variable. If -d option differs from CVS/Root, the former is used. Of course, for proper operation they should be two ways of referring to the same repository.