setenv CVSROOT ursa.astro.ku.dk:/home/aake/cvs # specify repository
cvs checkout docs # checkout the "docs" module
A subdirectory docs will be created, with the files in the module
(the file you are reading now is one of them ;-).
cvs watch add
When you get an email, you may want to see the differences:
cvs diff -rHEAD
To import the new version, do
cvs update
It is not necessary to have the CVSROOT environment variable
permanently set (the location of the repository is recorded in the
subdirectory where CVS keeps its things).
cvs diff
To check diffs relative to the current version in the repository, do
cvs diff -rHEAD
To import the new version, do
cvs update
It will be merged with your own changes. Possible collision will
be signalled, and both versions are available in you file, with comments around.
To commit changes to the repository, do
cvs commit
Your favorite editor will start, and you are requested to enter a line or two with comments about the snapshot. After entering the log message and exiting from the editor, the CVS repository will be updated, and you thus have a new snapshot of your directory.
You may give the log message on the command line, using
cvs commit -m "log message"
It is the files that you originally imported that are updated in the CVS repository, not all the files in the directory. If you make a new file that you would like to also keep in the repository, do
cvs add the-file
cvs commit -m new the-file
After the next commit, the file will be part of the repository, along with
the files that were already there.
To get back to a version from a specified date and time, specify the -D option. Here are some examples:
cvs update -D yesterday
cvs update -D "last week"
cvs update -D "last month"
cvs update -D "27 nov"
cvs update -D "27 nov 1999"
cvs update -D "27 nov 1999 17:15"
cvs update -D "1999-11-27 17:15"
To get back to the latest version and clear the "sticky"
date tag, for continued updating, do
cvs update -A
Analogously, differences relative to a date in the past may be viewed with
cvs diff -D "1999-11-30"
setenv CVSROOT ~/cvs
cvs init
cd that-directory
cvs import modulename -m initial yourlogin initial
where modulename is the name of the module. The rest of the parameters
are necessary, but more or less irrelevant.
To add only some file from a directory hierarchy (more typical for us), one has to do little joggling to create an empty module.
cd topofdirs # top of dir structure
mkdir tmpd # temporary dir
cd tmpd # go there
cvs import -m initial modulename yourlogin init # create an empty module
cd .. # go up
rmdir tmpd # delete the temp dir
cvs checkout modulename # check out the empty module
mv modulename/CVS . # move the CVS subdir up
rmdir modulename # remove the empty dir
Now we can add bits and pieces to the new module:
add src # adds the dir, not the files in it
cd src # go down into the dir
add *.f *.inc # add selected files
cd .. # up again
add run # same procedure ..
cd run
add job.csh
cd ..
cvs commit # commit the adds
In this case, we probably want to create a file .cvsignore with
the names and patterns of all files that CVS should ignore
cat > .cvsignore
*.o
*.x
*.log
*.spool
*.dat
*.com
CTRL-D
cvs add .cvsignore
cvs itself:
cvs --help cvs --help commandsThe full documentation is available, in HTML form, at TAC.