General usage:
– Checked out files are not locked for exclusive use
– Each directory is a module
– Commands without arguments will affect current directory and subdirectories
Set up the repository source:
export CVSROOT=user@machine:/path/to/repository
Set up ssh:
export CVS_RSH=ssh
Import a new project into the repository:
cvs import -m “log msg” projname vendortag releasetag
Adding a new text file:
cvs add filename
Adding a new binary file:
cvs add -kb filename
Adding a new directory:
cvs add directory
Get module for editing:
cvs checkout/co/get module
Commit changes to file:
cvs commit/com filename
Get/revert file:
cvs update filename
Update everything (don’t create new subdirectories):
cvs update/up
Update everything (and create new subdirectories):
cvs update -d
Compare file to repository:
cvs diff filename
Remove file to repository:
cvs remove/rm -f filename
Review file history:
cvs log filename
Tag all files:
cvs tag -c tag
Display status information on checked out files
cvs status
Commit modifications:
cvs commit
Differences between checkout and update:
– All work on files controlled by CVS starts with a checkout.
– Update is intended to be executed within a working directory created by checkout.
– Checkout creates a directory, moves into it, then becomes equivalent to “update -d”.
– Update does not create directories unless you add the ‘-d’ option.
– Update doesn’t take a module or directory argument, but figures out what repository files to look at by reading the files in the ./CVS administrative directory.
– Checkout is generally run once during the beginning of the project.
– Update is executed routinely to get updated files.
CVS Cheat Sheets:
Robert
Fox
DLPS
Tulrich
Webfunds
DSauder
OMG
Manuals:
The CVS Book
FAQ:
What’s the difference between “update” and “checkout”?
How do you handle binary files?
SourceForge:
Introduction to SourceForge.net Project CVS Services
Phramework
Resources:
CVS Resources