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

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),

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.