Annotation of src/usr.bin/cvs/cvs.1, Revision 1.7
1.3 jfb 1: .\" $OpenBSD$
1.1 jfb 2: .\"
3: .\" Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
4: .\" All rights reserved.
5: .\"
6: .\" Redistribution and use in source and binary forms, with or without
7: .\" modification, are permitted provided that the following conditions
8: .\" are met:
9: .\"
10: .\" 1. Redistributions of source code must retain the above copyright
11: .\" notice, this list of conditions and the following disclaimer.
12: .\" 2. The name of the author may not be used to endorse or promote products
13: .\" derived from this software without specific prior written permission.
14: .\"
15: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
16: .\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
17: .\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
18: .\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19: .\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20: .\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
21: .\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22: .\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23: .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
24: .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25: .\"
26: .Dd May 16, 2004
27: .Dt CVS 1
28: .Os
29: .Sh NAME
30: .Nm cvs
1.3 jfb 31: .Nd OpenCVS Concurrent Versioning System client
1.1 jfb 32: .Sh SYNOPSIS
33: .Nm
34: .Op Fl flQqv
35: .Op Fl d Ar root
36: .Op Fl e Ar editor
37: .Ar command Op Ar ...
38: .Sh DESCRIPTION
39: The
40: .Nm
41: program acts as both client and server for the use of and administration of
42: a CVS source repository.
43: CVS is used to maintain version information on files that are kept in a
44: repository.
45: Although it is more commonly used to track changes in source code, there
46: are no real limitations to the type of files that you can store in a
47: repository.
48: .Pp
1.7 ! jfb 49: Unless the
! 50: .Fl f
! 51: option is specified,
! 52: .Nm
! 53: reads its startup configuration file
! 54: .Pa .cvsrc
! 55: from the home directory of the user who invoked it.
! 56: This file is used to specify implicit options passed to
! 57: .Nm
! 58: or one of its commands whenever it is invoked.
! 59: Each command should be specified on a separate line along with the arguments.
! 60: For example, the following two lines:
! 61: .Pp
! 62: .Bl -item -compact -offset indent
! 63: .It
! 64: cvs -q
! 65: .It
! 66: diff -u
! 67: .El
! 68: .Pp
! 69: specify that
! 70: .Nm
! 71: should always run in quiet mode and the
! 72: .Sy diff
! 73: command should always produce unified output.
! 74: .Pp
1.1 jfb 75: The following options are supported:
76: .Bl -tag -width Ds
77: .It Fl d Ar root
78: Use
79: .Ar root
80: as the path to the root directory of the CVS repository.
81: The value must specify an absolute path.
82: .It Fl e Ar editor
83: Use the program
84: .Ar editor
85: whenever editing log information.
86: This option overrides the environment variables CVSEDITOR, VISUAL and EDITOR.
87: .It Fl f
1.7 ! jfb 88: Do not read the user's configuration file on startup.
1.1 jfb 89: .It Fl l
90: Suppress logging of history information.
91: .It Fl Q
92: Be extra quiet.
93: Only error messages will be displayed.
94: .It Fl q
95: Be quiet about reporting.
96: .It Fl v
97: Display version information and exit.
98: .El
99: .Sh COMMANDS
1.3 jfb 100: The following commands are supported by
101: .Nm .
1.7 ! jfb 102: .Bl -tag -width "xxxxxxxxxxxx"
1.3 jfb 103: .It Xo Sy add Op Fl m Ar msg
1.1 jfb 104: .Ar file Op ...
1.3 jfb 105: .Xc
1.7 ! jfb 106: .Pp
1.1 jfb 107: Before a file is known to CVS, it must be added to the repository using
108: this command.
109: Adding a file does not actually publish the contents of the
1.7 ! jfb 110: file, so you must
! 111: .Sy commit
! 112: the first revision in order to let other users see the file with the
1.3 jfb 113: .Sy update
1.4 jfb 114: or
115: .Sy checkout
116: commands.
1.1 jfb 117: .Pp
1.7 ! jfb 118: Although adding a file does not involve a log message, it is possible to
! 119: specify one to include with the action, using the
! 120: .Fl m
! 121: option.
! 122: .Pp
! 123: .It Xo Sy checkout
! 124: .Op Fl c
! 125: .Op Ar module ...
! 126: .Xc
! 127: .Pp
! 128: The
! 129: .Sy checkout
! 130: command is used to create a local copy of one or more modules present on the
! 131: target CVS repository.
! 132: .Pp
1.3 jfb 133: .It Xo Sy commit
134: .Op Fl flnR
1.1 jfb 135: .Op Fl m Ar msg
1.3 jfb 136: .Op Fl F Ar logfile
137: .Op Fl r Ar rev
1.4 jfb 138: .Op Ar file ...
1.3 jfb 139: .Xc
1.7 ! jfb 140: .Pp
1.1 jfb 141: The
1.3 jfb 142: .Sy commit
1.1 jfb 143: command is used to send local changes back to the server and update the
144: repository's information to reflect the changes.
145: .Pp
1.3 jfb 146: .It Xo Sy diff Op Fl cilu
147: .Op Fl D Ar date
148: .Op Fl r Ar rev
1.4 jfb 149: .Op Ar file ...
1.3 jfb 150: .Xc
1.7 ! jfb 151: .Pp
1.3 jfb 152: The
153: .Sy diff
154: command is very similar to the
155: .Xr diff 1
1.5 jfb 156: program, except that the differential comparisons that it generates are
1.3 jfb 157: between local or remote revisions of files stored in the CVS repository.
158: .It Xo Sy update
159: .Op Fl ACdP
1.4 jfb 160: .Op Ar file ...
1.3 jfb 161: .Xc
1.7 ! jfb 162: .Pp
1.3 jfb 163: The
164: .Sy update
165: command is used to merge any of the changes that have occured on the remote
166: repository into the local one where the command was run.
167: .Pp
168: The
169: .Fl A
170: flag resets any sticky tags, dates or kopts that have been set on the tree.
171: The
172: .Fl l
173: flag is used to specify a local change only and disables the recursive
174: behaviour.
175: The
176: .Fl P
177: flag causes
178: .Nm
179: to prune any directories that have become empty as a result of the update.
180: .It Sy version
181: Causes
182: .Nm
183: to print its version information.
184: If this command is issued within a local copy of a repository located on
185: an other machine,
186: .Nm
187: will also connect to the server and ask it to print its version information.
1.1 jfb 188: .El
189: .Sh FILES
190: .Bl -tag -width Ds
191: .It Pa $HOME/.cvsrc
192: File containing a list of implicit options to pass to certain commands.
193: This file is read on startup unless the
194: .Fl f
195: option is specified.
196: .It Pa $CVSROOT/CVSROOT
197: Directory containing repository administrative files.
198: .It Pa $CVSROOT/CVSROOT/loginfo
199: File containing associations between modules and handlers for
200: post-commit logging.
201: .El
202: .Sh ENVIRONMENT
203: .Bl -tag -width CVS_CLIENT_LOG
204: .It Ev CVSROOT
205: When set, this variable should contain the string pointing to the root
206: directory of the CVS repository.
207: The contents of this variable are ignored when the
208: .Fl d
209: option is given or if `Root' files exist in the checked-out copy.
210: .It Ev CVS_RSH
211: Name of the program to use when connecting to the server through a remote
212: shell.
213: The default is to use the
214: .Xr ssh 1
215: program.
216: .It Ev CVS_SERVER
217: If set, gives the name of the program to invoke as a
218: .Nm
219: server when using remote shell.
220: The default is to use `cvs'.
221: .It Ev CVSEDITOR
222: Name of the editor to use when editing commit messages.
223: Checked before EDITOR and VISUAL.
224: .It Ev EDITOR
225: .It Ev VISUAL
226: .It Ev CVS_CLIENT_LOG
227: This variable enables logging of all communications between the client and
228: server when running in non-local mode.
229: If set, this environment variable must contain a base path from which two
230: paths will be generated by appending ".in" to the value for the server's
231: input and ".out" for the server's output.
232: .El
233: .Sh SEE ALSO
234: .Xr rcs 1 ,
235: .Xr diff 1 ,
236: .Xr patch 1 ,
237: .Xr cvsd 8
1.2 jfb 238: .Sh CAVEATS
239: This CVS implementation does not fully conform to the GNU CVS version.
1.3 jfb 240: In some cases, this was done explicitly because GNU CVS has inconsistencies
1.2 jfb 241: or ambiguous behaviour.
1.3 jfb 242: Some things have also been left out or modified to enhance the overall
243: security of the system.
244: .Pp
245: Among other things, support for the pserver connection mechanism has been
246: dropped because of security issues with the authentication mechanism.
1.1 jfb 247: .Sh HISTORY
248: The OpenCVS project is a BSD-licensed rewrite of the original
249: Concurrent Versioning System written by Jean-Francois Brousseau.
250: The original CVS code was written in large parts by Dick Grune,
251: Brian Berliner and Jeff Polk.
1.2 jfb 252: .Sh AUTHORS
253: .An Jean-Francois Brousseau
254: .An Vincent Labrecque
1.6 jfb 255: .An Joris Vink