.\" $OpenBSD: cvs.1,v 1.4 2004/11/12 03:06:53 jfb Exp $ .\" .\" Copyright (c) 2004 Jean-Francois Brousseau .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, .\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY .\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL .\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, .\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, .\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; .\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, .\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .Dd May 16, 2004 .Dt CVS 1 .Os .Sh NAME .Nm cvs .Nd OpenCVS Concurrent Versioning System client .Sh SYNOPSIS .Nm .Op Fl flQqv .Op Fl d Ar root .Op Fl e Ar editor .Ar command Op Ar ... .Sh DESCRIPTION The .Nm program acts as both client and server for the use of and administration of a CVS source repository. CVS is used to maintain version information on files that are kept in a repository. Although it is more commonly used to track changes in source code, there are no real limitations to the type of files that you can store in a repository. .Pp The following options are supported: .Bl -tag -width Ds .It Fl d Ar root Use .Ar root as the path to the root directory of the CVS repository. The value must specify an absolute path. .It Fl e Ar editor Use the program .Ar editor whenever editing log information. This option overrides the environment variables CVSEDITOR, VISUAL and EDITOR. .It Fl f Do not read the contents of the user's .cvsrc file on startup. .It Fl l Suppress logging of history information. .It Fl Q Be extra quiet. Only error messages will be displayed. .It Fl q Be quiet about reporting. .It Fl v Display version information and exit. .El .Sh COMMANDS The following commands are supported by .Nm . .Bl -tag -width "xxxxxxxxxxxxxxxxx" .It Xo Sy add Op Fl m Ar msg .Ar file Op ... .Xc Before a file is known to CVS, it must be added to the repository using this command. Adding a file does not actually publish the contents of the file, so you must commit the first revision in order to let other users see the file with the .Sy update or .Sy checkout commands. .Pp .It Xo Sy commit .Op Fl flnR .Op Fl m Ar msg .Op Fl F Ar logfile .Op Fl r Ar rev .Op Ar file ... .Xc The .Sy commit command is used to send local changes back to the server and update the repository's information to reflect the changes. .Pp .It Xo Sy diff Op Fl cilu .Op Fl D Ar date .Op Fl r Ar rev .Op Ar file ... .Xc The .Sy diff command is very similar to the .Xr diff 1 program, except that the differential comparations that it generates are between local or remote revisions of files stored in the CVS repository. .It Xo Sy update .Op Fl ACdP .Op Ar file ... .Xc The .Sy update command is used to merge any of the changes that have occured on the remote repository into the local one where the command was run. .Pp The .Fl A flag resets any sticky tags, dates or kopts that have been set on the tree. The .Fl l flag is used to specify a local change only and disables the recursive behaviour. The .Fl P flag causes .Nm to prune any directories that have become empty as a result of the update. .It Sy version Causes .Nm to print its version information. If this command is issued within a local copy of a repository located on an other machine, .Nm will also connect to the server and ask it to print its version information. .El .Sh FILES .Bl -tag -width Ds .It Pa $HOME/.cvsrc File containing a list of implicit options to pass to certain commands. This file is read on startup unless the .Fl f option is specified. .It Pa $CVSROOT/CVSROOT Directory containing repository administrative files. .It Pa $CVSROOT/CVSROOT/loginfo File containing associations between modules and handlers for post-commit logging. .El .Sh ENVIRONMENT .Bl -tag -width CVS_CLIENT_LOG .It Ev CVSROOT When set, this variable should contain the string pointing to the root directory of the CVS repository. The contents of this variable are ignored when the .Fl d option is given or if `Root' files exist in the checked-out copy. .It Ev CVS_RSH Name of the program to use when connecting to the server through a remote shell. The default is to use the .Xr ssh 1 program. .It Ev CVS_SERVER If set, gives the name of the program to invoke as a .Nm server when using remote shell. The default is to use `cvs'. .It Ev CVSEDITOR Name of the editor to use when editing commit messages. Checked before EDITOR and VISUAL. .It Ev EDITOR .It Ev VISUAL .It Ev CVS_CLIENT_LOG This variable enables logging of all communications between the client and server when running in non-local mode. If set, this environment variable must contain a base path from which two paths will be generated by appending ".in" to the value for the server's input and ".out" for the server's output. .El .Sh SEE ALSO .Xr rcs 1 , .Xr diff 1 , .Xr patch 1 , .Xr cvsd 8 .Sh CAVEATS This CVS implementation does not fully conform to the GNU CVS version. In some cases, this was done explicitly because GNU CVS has inconsistencies or ambiguous behaviour. Some things have also been left out or modified to enhance the overall security of the system. .Pp Among other things, support for the pserver connection mechanism has been dropped because of security issues with the authentication mechanism. .Sh HISTORY The OpenCVS project is a BSD-licensed rewrite of the original Concurrent Versioning System written by Jean-Francois Brousseau. The original CVS code was written in large parts by Dick Grune, Brian Berliner and Jeff Polk. .Sh AUTHORS .An Jean-Francois Brousseau .An Vincent Labrecque