| CVS(1) | CVS(1)
| NAME
| cvs – introduction using plan9port CVS repository
SYNOPSIS
| `cvs −d :pserver:anoncvs@cvs.pdos.csail.mit.edu:/cvs login
` `cvs −d :pserver:anoncvs@cvs.pdos.csail.mit.edu:/cvs checkout plan9
` `cvs update` [ `−dP` ] [ path ... ]
`cvs status` [ path ... ]
`cvs diff` [ `−D` date ] [ `−r` revision ] [ `−cu` ] [ path ... ]
`web http://cvs.pdos.csail.mit.edu/cvs/plan9/`
DESCRIPTION
| The master source tree for Plan 9 from User Space is maintained using the source control system CVS as a poor substitute for Plan 9’s replica(8) and dump file system. (It is maintained simultaneously using Mercurial; see hg(1).)
The first argument to cvs is a command, which determines the form of the rest of the command line.
The `login` command authenticates to the remote server and records your password in `$HOME/.cvspass`. Use an empty password: when prompted, type a newline.
The `checkout` command downloads a copy of the tree into the directory `plan9`, which it will create. The argument `plan9` is both the name of the created directory and the name used to tell the server which tree you want. If you want to use a different name locally, rename the directory after running the command.
From directories within the `plan9` tree, the awkward `−d` is no longer necessary.
Cvs update incorporates recent changes from the CVS tree into the local copy. If the changes cannot be merged because of locally-made changes that are in the way, cvs will leave a note in the file showing the differences between the local and remote file.
The `−d` flag to cvs update causes it to update subdirectories as well. The `−P` flag causes cvs update to remove directories that have been emptied.
Cvs status displays the version number (also called a revision number) for the local copy of the named files, as well as the number of the most recent version on the server. Version numbers are of the form 1.n, where n is a sequence number starting at 1.
Cvs diff runs Unix’s diff(1) to compare files in the local tree with the corresponding files in the CVS tree. By default it compares against the version that was most recently incorporated into the local tree. The `−r` flag specifies an alternate version to compare against. The special revision `HEAD` refers to the most recent version on the server. The `−D` flag instructs cvs diff to use the version as of the given date. Almost any imaginable date format is acceptable: `20050110`, `1/10/2005`, `'Jan 10'`, `yesterday`, `'last week`’, `'two days ago'`, `'a fortnight ago'`, and so on. If two `−r` or `−D` options are given, those two versions are compared, and the local copy is ignored.
Cvs diff passes the `−u` or `−c` options to the Unix diff.
If you download a tar file from the web instead of checking out the tree with CVS, you can still use the update and diff commands to stay up-to-date and to see what has changed. You will need to run the cvs login command first to create your `.cvspass` file.
The CVS tree can be inspected on the web at `http://cvs.pdos.csail.mit.edu/cvs/plan9/`.
EXAMPLES
| Incorporate any changes made to the CVS tree since the last check out or update:
| `cd $PLAN9 cvs up −dP
`
Compare libdraw against its source from January 1, 2005:
| `cd $PLAN9/src/libdraw cvs diff −D20050101
`
Check the entire tree for changes made locally:
| `cd $PLAN9 cvs diff
`
Check the entire tree for changes between the local version and the most recent in the CVS tree. This does not indicate which changes are local ones and which are changes to the CVS tree that have not yet been incorporated into the local tree.
| `cd $PLAN9 cvs diff −r HEAD
`
Make cvs less chatty by setting the global `−q` flag implicitly on every CVS command: `cd $HOME echo 'cvs −q' > .cvsrc`
FILES
| `CVS` directory containing CVS metadata for parent `.cvsignore`
| list of files and wildcards to exclude from CVS operations in this directory
SEE ALSO
| hg(1)
Unix’s cvs(1), `http://www.cvshome.org/`
`http://cvs.pdos.csail.mit.edu/cvs/plan9/`
BUGS
| The CVS server is a read-only public copy of a private tree. The dates on versions reflect the date the changes were made in the private tree, not the date the change was made public.
On Mac OS X, cvs will complain during a checkout that some files in `$PLAN9/troff/font/devutf` are “in the way.” This is due to the Mac case-insensitive file system and the fact that troff has some (rarely used) files whose names differ only in case.