.TH CVS 1
.SH NAME
cvs \- introduction using plan9port CVS repository
.SH SYNOPSIS
.B cvs 
.B -d
.B :pserver:anoncvs@cvs.pdos.lcs.mit.edu:/cvs login
.PP
.B cvs
.B -d
.B :pserver:anoncvs@cvs.pdos.lcs.mit.edu:/cvs checkout plan9
.PP
.B cvs
.B update
[
.B -dP
]
[
.I path ...
]
.PP
.B cvs
.B status
[
.I path ...
]
.PP
.B cvs
.B diff
[
.B -D
.I date
]
[
.B -r
.I revision
]
[
.B -cu
]
[
.I path ...
]
.PP
.B web
.B http://cvs.pdos.lcs.mit.edu/cvs/plan9/
.SH 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
\fIreplica\fR(8) and dump file system.
.PP
The first argument to
.I cvs
is a command, which determines the form of the rest of the command line.
.PP
The
.B login
command authenticates to the remote server and records your password in
.BR $HOME/.cvspass .
Use an empty password: when prompted, type a newline.
.PP
The
.B checkout
command downloads a copy of the tree into the directory
.BR plan9 ,
which it will create.
The argument
.B 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.
.PP
From directories within the
.B plan9
tree, the awkward
.B -d
is no longer necessary.
.PP
.I Cvs
.I 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,
.I cvs
will leave a note in the file showing the differences between the local
and remote file.
.PP
The
.B -d
flag to 
.I cvs
.I update
causes
it to update subdirectories as well.
The
.B -P
flag causes
.I cvs
.I update
to remove directories that have been emptied.
.PP
.I Cvs
.I 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
.RI 1. n \fR,
where
.I n
is a sequence number starting at 1.
.PP
.I Cvs
.I diff
runs Unix's
.IR 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
.B -r
flag specifies an alternate version to compare against.
The special revision
.B HEAD
refers to the most recent version on the server.
The
.B -D
flag instructs
.I cvs
.I diff
to use the version as of the given date.
Almost any imaginable date format is acceptable:
.BR 20050110 ,
.BR 1/10/2005 ,
.B 'Jan
.BR 10' ,
.BR yesterday ,
.B 'last
.BR week ',
.B 'two
.B days
.BR ago' ,
.B 'a
.B fortnight
.BR ago' ,
and so on.
If two
.B -r
or
.B -D
options are given,
those two versions are compared, and the local copy is ignored.
.PP
.I Cvs
.I diff
passes the
.B -u
or
.B -c
options to the Unix
.IR diff .
.PP
If you download a tar file from the web
instead of checking out the tree with CVS,
you can still use the
.I update
and
.I diff
commands to stay up-to-date and to see what has changed.
You will need to run the
.I cvs
.I login
command first to create your
.B .cvspass
file.
.PP
The CVS tree can be inspected on the web at
.HR http://cvs.pdos.lcs.mit.edu/cvs/plan9/ "" .
.SH EXAMPLES
Incorporate any changes made to the CVS tree since
the last check out or update:
.IP
.EX
cd $PLAN9
cvs up -dP
.EE
.PP
Compare
.I libdraw
against its source from January 1, 2005:
.IP
.EX
cd $PLAN9/src/libdraw
cvs diff -D20050101
.EE
.PP
Check the entire tree for changes made locally:
.IP
.EX
cd $PLAN9
cvs diff
.EE
.PP
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.
.IP
.EX
cd $PLAN9
cvs diff -r HEAD
.EE
.SH FILES
.TP
.B CVS
directory containing CVS metadata for parent
.TP
.B .cvsignore
list of files and wildcards to exclude from CVS operations in this directory
.SH SEE ALSO
Unix's
\fIcvs\fR(1),
.HR http://www.cvshome.org/
.PP
.HR http://cvs.pdos.lcs.mit.edu/cvs/plan9/
.SH 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.
.PP
On Mac OS X, 
.I cvs
will complain during a checkout that some files in
.B $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 (not often used)
files whose names differ only in case.
