Annotation of src/usr.bin/cvs/cvs.1, Revision 1.18
1.18 ! xsa 1: .\" $OpenBSD: cvs.1,v 1.17 2004/12/22 00:38:25 david Exp $
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
1.15 jmc 34: .Op Fl flQqtv
1.1 jfb 35: .Op Fl d Ar root
36: .Op Fl e Ar editor
1.15 jmc 37: .Op Fl z Ar level
1.1 jfb 38: .Ar command Op Ar ...
39: .Sh DESCRIPTION
40: The
41: .Nm
42: program acts as both client and server for the use of and administration of
43: a CVS source repository.
44: CVS is used to maintain version information on files that are kept in a
45: repository.
46: Although it is more commonly used to track changes in source code, there
47: are no real limitations to the type of files that you can store in a
48: repository.
49: .Pp
1.7 jfb 50: Unless the
51: .Fl f
52: option is specified,
53: .Nm
54: reads its startup configuration file
55: .Pa .cvsrc
56: from the home directory of the user who invoked it.
57: This file is used to specify implicit options passed to
58: .Nm
59: or one of its commands whenever it is invoked.
1.16 jmc 60: See
61: .Xr cvsrc 5
62: for further information.
1.7 jfb 63: .Pp
1.1 jfb 64: The following options are supported:
1.15 jmc 65: .Bl -tag -width "-e editorXX"
1.1 jfb 66: .It Fl d Ar root
67: Use
68: .Ar root
69: as the path to the root directory of the CVS repository.
70: The value must specify an absolute path.
71: .It Fl e Ar editor
72: Use the program
73: .Ar editor
74: whenever editing log information.
1.8 jmc 75: This option overrides the environment variables CVSEDITOR, VISUAL, and EDITOR.
1.1 jfb 76: .It Fl f
1.7 jfb 77: Do not read the user's configuration file on startup.
1.1 jfb 78: .It Fl l
79: Suppress logging of history information.
80: .It Fl Q
81: Be extra quiet.
82: Only error messages will be displayed.
83: .It Fl q
84: Be quiet about reporting.
1.15 jmc 85: .It Fl t
86: Trace program execution.
1.1 jfb 87: .It Fl v
88: Display version information and exit.
1.15 jmc 89: .It Fl z Ar level
90: Specify the compression level to
91: .Xr gzip 1
92: when transferring files.
93: The compression level ranges from 1 to 9,
94: with 1 being the fastest,
95: and 9 providing the best level of compression.
96: The default is 6.
1.1 jfb 97: .El
98: .Sh COMMANDS
1.3 jfb 99: The following commands are supported by
100: .Nm .
1.7 jfb 101: .Bl -tag -width "xxxxxxxxxxxx"
1.11 jmc 102: .It Xo Ic add Op Fl m Ar msg
1.1 jfb 103: .Ar file Op ...
1.3 jfb 104: .Xc
1.7 jfb 105: .Pp
1.1 jfb 106: Before a file is known to CVS, it must be added to the repository using
107: this command.
108: Adding a file does not actually publish the contents of the
1.7 jfb 109: file, so you must
1.11 jmc 110: .Ic commit
1.7 jfb 111: the first revision in order to let other users see the file with the
1.11 jmc 112: .Ic update
1.4 jfb 113: or
1.11 jmc 114: .Ic checkout
1.4 jfb 115: commands.
1.1 jfb 116: .Pp
1.7 jfb 117: Although adding a file does not involve a log message, it is possible to
118: specify one to include with the action, using the
119: .Fl m
120: option.
1.13 jmc 121: .Pp
122: Aliases:
123: .Ic ad ,
124: .Ic new .
125: .It Ic admin
126: Administration front-end for
127: .Xr rcs 1 .
128: .Pp
129: Aliases:
130: .Ic adm ,
131: .Ic rcs .
132: .It Ic annotate
133: Show last revision where each line was modified.
134: .Pp
135: Aliases:
136: .Ic ann .
1.11 jmc 137: .It Xo Ic checkout
1.7 jfb 138: .Op Fl c
139: .Op Ar module ...
140: .Xc
141: .Pp
142: The
1.11 jmc 143: .Ic checkout
1.7 jfb 144: command is used to create a local copy of one or more modules present on the
145: target CVS repository.
1.13 jmc 146: .Pp
147: Aliases:
148: .Ic co ,
149: .Ic get .
1.11 jmc 150: .It Xo Ic commit
1.3 jfb 151: .Op Fl flnR
1.8 jmc 152: .Op Fl F Ar logfile
1.1 jfb 153: .Op Fl m Ar msg
1.3 jfb 154: .Op Fl r Ar rev
1.4 jfb 155: .Op Ar file ...
1.3 jfb 156: .Xc
1.7 jfb 157: .Pp
1.1 jfb 158: The
1.11 jmc 159: .Ic commit
1.1 jfb 160: command is used to send local changes back to the server and update the
161: repository's information to reflect the changes.
1.13 jmc 162: .Pp
163: Aliases:
164: .Ic ci ,
165: .Ic com .
1.11 jmc 166: .It Xo Ic diff Op Fl cilu
1.3 jfb 167: .Op Fl D Ar date
168: .Op Fl r Ar rev
1.4 jfb 169: .Op Ar file ...
1.3 jfb 170: .Xc
1.7 jfb 171: .Pp
1.3 jfb 172: The
1.11 jmc 173: .Ic diff
1.3 jfb 174: command is very similar to the
175: .Xr diff 1
1.5 jfb 176: program, except that the differential comparisons that it generates are
1.3 jfb 177: between local or remote revisions of files stored in the CVS repository.
1.13 jmc 178: .Pp
179: Aliases:
180: .Ic di ,
181: .Ic dif .
182: .It Ic edit
183: Get ready to edit a watched file.
184: .It Ic editors
185: See who is editing a watched file.
186: .It Ic export
187: Export sources from CVS;
188: similar to
189: .Ic checkout .
190: .Pp
191: Aliases:
192: .Ic ex ,
193: .Ic exp .
194: .It Ic history
195: Show repository access history.
196: .Pp
197: Aliases:
198: .Ic hi ,
199: .Ic his .
200: .It Ic import
201: Import sources into CVS using vendor branches.
202: .Pp
203: Aliases:
204: .Ic im ,
205: .Ic imp .
206: .It Ic init
207: Create a CVS repository if it doesn't exist.
208: .It Ic kserver
209: Start a Kerberos authentication server.
210: .It Ic log
211: Print out history information for files.
212: .Pp
213: Aliases:
214: .Ic lo .
215: .It Ic login
216: Prompt for password for authenticating server.
217: .It Ic logout
218: Remove entry in .cvspass for remote repository.
219: .It Ic rdiff
220: Create
221: .Xr patch 1
222: format diffs between releases.
223: .It Ic release
224: Indicate that a module is no longer in use.
1.18 ! xsa 225: .It Xo Ic remove
! 226: .Op Fl flR
! 227: .Op Ar file ...
! 228: .Xc
! 229: The
! 230: .Ic remove
! 231: command is used to inform
! 232: .Nm
! 233: that
! 234: .Ar file
! 235: is scheduled to be removed from the repository.
! 236: Files are not actually removed from the repository until the
! 237: .Ic commit
! 238: command has been run subsequently.
! 239: .Pp
! 240: Aliases:
! 241: .Ic delete ,
! 242: .Ic rm .
1.13 jmc 243: .It Ic rlog
244: Print out history information for a module.
245: .It Ic rtag
246: Add a symbolic link to a module.
247: .It Ic server
248: Server mode.
249: .It Ic status
250: Display status information on checked out files.
251: .Pp
252: Aliases:
253: .Ic st ,
254: .Ic stat .
255: .It Ic tag
256: Add a symbolic tag to checked out version of files.
257: .Pp
258: Aliases:
259: .Ic ta ,
260: .Ic freeze .
261: .It Ic unedit
262: Undo an
263: .Ic edit
264: command.
1.11 jmc 265: .It Xo Ic update
1.3 jfb 266: .Op Fl ACdP
1.4 jfb 267: .Op Ar file ...
1.3 jfb 268: .Xc
1.7 jfb 269: .Pp
1.3 jfb 270: The
1.11 jmc 271: .Ic update
1.17 david 272: command is used to merge any of the changes that have occurred on the remote
1.3 jfb 273: repository into the local one where the command was run.
274: .Pp
275: The
276: .Fl A
1.8 jmc 277: flag resets any sticky tags, dates, or kopts that have been set on the tree.
1.3 jfb 278: The
279: .Fl l
280: flag is used to specify a local change only and disables the recursive
281: behaviour.
282: The
283: .Fl P
284: flag causes
285: .Nm
286: to prune any directories that have become empty as a result of the update.
1.13 jmc 287: .Pp
288: Aliases:
289: .Ic up ,
290: .Ic upd .
1.11 jmc 291: .It Ic version
1.3 jfb 292: Causes
293: .Nm
294: to print its version information.
1.14 jfb 295: If this command is issued within a local copy of a remote repository or
296: if either the
297: .Ev CVSROOT
298: environment variable or the
299: .Fl d
300: flag specify a remote repository,
1.3 jfb 301: .Nm
302: will also connect to the server and ask it to print its version information.
1.13 jmc 303: .Pp
304: Aliases:
305: .Ic ve ,
306: .Ic ver .
307: .It Ic watch
308: Set watches.
309: .It Ic watchers
310: See who is watching a file.
1.1 jfb 311: .El
312: .Sh ENVIRONMENT
313: .Bl -tag -width CVS_CLIENT_LOG
1.8 jmc 314: .It Ev CVS_CLIENT_LOG
315: This variable enables logging of all communications between the client and
316: server when running in non-local mode.
317: If set, this environment variable must contain a base path from which two
318: paths will be generated by appending ".in" to the value for the server's
319: input and ".out" for the server's output.
1.1 jfb 320: .It Ev CVS_RSH
321: Name of the program to use when connecting to the server through a remote
322: shell.
323: The default is to use the
324: .Xr ssh 1
325: program.
326: .It Ev CVS_SERVER
327: If set, gives the name of the program to invoke as a
328: .Nm
329: server when using remote shell.
330: The default is to use `cvs'.
331: .It Ev CVSEDITOR
332: Name of the editor to use when editing commit messages.
1.8 jmc 333: Checked before
334: .Ev EDITOR
335: and
336: .Ev VISUAL .
337: .It Ev CVSROOT
338: When set, this variable should contain the string pointing to the root
339: directory of the CVS repository.
340: The contents of this variable are ignored when the
341: .Fl d
342: option is given or if `Root' files exist in the checked-out copy.
1.1 jfb 343: .It Ev EDITOR
1.9 jmc 344: Name of the editor to use when editing commit messages.
345: This is traditionally a line-oriented editor,
346: such as
347: .Xr ex 1 .
1.1 jfb 348: .It Ev VISUAL
1.9 jmc 349: Name of the editor to use when editing commit messages.
350: This is traditionally a screen-oriented editor,
351: such as
352: .Xr vi 1 .
1.8 jmc 353: .El
354: .Sh FILES
355: .Bl -tag -width Ds
356: .It Pa $HOME/.cvsrc
357: File containing a list of implicit options to pass to certain commands.
358: This file is read on startup unless the
359: .Fl f
360: option is specified.
361: .It Pa $CVSROOT/CVSROOT
362: Directory containing repository administrative files.
363: .It Pa $CVSROOT/CVSROOT/loginfo
364: File containing associations between modules and handlers for
365: post-commit logging.
1.1 jfb 366: .El
367: .Sh SEE ALSO
368: .Xr diff 1 ,
1.15 jmc 369: .Xr gzip 1 ,
1.1 jfb 370: .Xr patch 1 ,
1.8 jmc 371: .Xr rcs 1 ,
1.16 jmc 372: .Xr cvsrc 5 ,
1.1 jfb 373: .Xr cvsd 8
1.8 jmc 374: .Sh HISTORY
375: The OpenCVS project is a BSD-licensed rewrite of the original
376: Concurrent Versioning System written by Jean-Francois Brousseau.
377: The original CVS code was written in large parts by Dick Grune,
378: Brian Berliner and Jeff Polk.
379: .Sh AUTHORS
380: .An Jean-Francois Brousseau
381: .An Vincent Labrecque
382: .An Joris Vink
1.2 jfb 383: .Sh CAVEATS
384: This CVS implementation does not fully conform to the GNU CVS version.
1.3 jfb 385: In some cases, this was done explicitly because GNU CVS has inconsistencies
1.2 jfb 386: or ambiguous behaviour.
1.3 jfb 387: Some things have also been left out or modified to enhance the overall
388: security of the system.
389: .Pp
390: Among other things, support for the pserver connection mechanism has been
391: dropped because of security issues with the authentication mechanism.