Quick reference guide to CVS commands 

# To create your personal repository:
setenv CVSROOT $HOME/CVSRepos
cvs -d init
# set environment variables (put these in your .cshrc)
setenv CVSROOT $HOME/CVSRepos
setenv CVSEDITOR pico
setenv CVS_RSH ssh
# create a new project:
cvs import projectname username version1
# how to get a copy of a project for personal use:
cvs checkout projectname
# add a file to a project
cvs add filename
cvs add *.cxx *.h
etc...
# remove a file from cvs
rm filename
cvs remove filename
# or be fancy:
alias cvsrm 'rm \!*; cvs remove \!*'
# to check-in your changes
cvs commit
# to sync your checked out project to what is
# currently in the repository this is real useful
# if you have multiple copies of your project
# or if you have multiple developers on the same code.
# NOTE: this will not kill any of your changes (very cool!)
#       cvs is smart. It is able to merge any changes
#       with your current code and does a good job of it.
cvs update
# to see differences between what you currently have and
# what is in the repository
cvs diff filename

#: CVS Checkout

# to get a copy of your project from some time ago.
cvs checkout -D "1 day ago" project
cvs checkout -D "2 days ago" project
cvs checkout -D "4 months ago" project
# ... 12 midnight GMT
cvs checkout -D "today" project
# ... now
cvs checkout -D "now" project

#: CVS Commit Log

# to see all comments you've made
# (sort of an unorganized ChangeLog)
cvs log [files]
# show log for all subdirs under current dir.
cvs log
# local dir only, no recursion
cvs log -l

#: CVS Branches/Tags

# FYI: tags are simple. branches are founded upon tags.
# to check out a branch called RELENG_1_0
cvs checkout -r RELENG_1_0 juggler
# when in a directory with code checked out from a
# RELENG_1_0 branch, and you need to merge from the
# HEAD branch into RELENG_1_0.
cvs checkout -r RELENG_1_0 juggler
cd juggler
cvs update -j HEAD some_directory_or_files
# to tag one file
cvs tag myAwsomeTag file.cpp
# to tag all files
cvs tag myAwsomeTag .
# to create a branch
cvs rtag -b newBranchName myModuleName
# to create a branch rooted at a previously made tag
cvs rtag -b -r myAwsomeTag newBranchName myModuleName