| cvs login | - store an encrypted version of password for future sessions - you won't (shouldn't) have to enter a password for each command |
| cvs log file or cvs log -t -N |
- who did what |
| cvs diff -b testProgram.cpp | |
| cvs release | |
| cvs annotate file | - verbose version of who did what |
| cvs remove file | - file will be removed at the next commit - cvs remove will not work unless you delete file first |
| cvs add alpha.cpp cvs commit alpha.cpp |
- to add a new file to the repository |
cvs -n -q update -d
Display all files which are not up-to-date (and any new directories)
without actually change anything in your working directory. It can
be used to check what has been going on with the project.
cvs update -d
Update will compare files in a checked out module with their
counterparts in the repository. All files examined will be shown
with a one letter code preceding them. The '-d' option also updates
the current checkout with new directories that are in the repository
but not in the current checkout.
U file
The file was brought up to date with respect to the repository. This is done for any file that exists in the repository but not in your source, and for files that you haven't changed but are not the most recent versions available in the repository.
A file
The file has been added to your private copy of the sources, and will be added to the source repository when you run commit on the file. This is a reminder to you that the file needs to be committed.
R file
The file has been removed from your private copy of the sources, and will be removed from the source repository when you run commit on the file. This is a reminder to you that the file needs to be committed.
M file
The file is modified in your working directory.
`M' can indicate one of two states for a file you're working on: either there were no modifications to the same file in the repository, so that your file remains as you last saw it; or there were modifications in the repository as well as in your copy, but they were merged successfully, without conflict, in your working directory.
CVS will print some messages if it merges your work, and a backup copy of your working file (as it looked before you ran update) will be made. The exact name of that file is printed while update runs.
C file
A conflict was detected while trying to merge your changes to file with changes from the source repository. file (the copy in your working directory) is now the output of the rcsmerge(1) command on the two revisions; an unmodified copy of your file is also in your working directory, with the name `.#file.revision' where revision is the RCS revision that your modified file started from. (Note that some systems automatically purge files that begin with `.#' if they have not been accessed for a few days. If you intend to keep a copy of your original file, it is a very good idea to rename it.)
? file
file is in your working directory, but does not correspond to anything in the source repository, and is not in the list of files for CVS to ignore (see the description of the `-I' option, and see section Ignoring files via cvsignore).
Each file in cvs has a version number. However, it is often useful to give a symbolic name to all the files at once. cvs tag version_1_0 will attach the tag "version_1_0" to all the files in the current directory. file1 file2 file3 file4 1.1 1.2 1.3 1.1 1.1 1.4 1.2 1.1 --- 1.2 --- 1.5 --- 1.3 <-- version_1_0 1.2 1.3 1.6 1.3 Checking out a specific version cvs checkout -r version_1_0 hello will checkout a copy of the 1.0 version of the hello module.
cvs add -kb filename cvs ci -m "added blah" filename If a file accidentally gets added without '-kb', one can use the cvs admin command to recover. For example: echo '$Id$' > kotest cvs add -m"A test file" kotest cvs ci -m"First checkin; contains a keyword" kotest cvs admin -kb kotest cvs update -A kotest # For non-unix systems: # Copy in a good copy of the file from outside CVS cvs commit -m "make it binary" kotest