Annotation of src/usr.bin/cvs/cvs.1, Revision 1.13
1.12 jmc 1: .\" $OpenBSD: cvs.1,v 1.11 2004/12/07 23:07:42 jmc 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
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
1.11 jmc 72: .Ic diff
1.7 jfb 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.
1.8 jmc 86: This option overrides the environment variables CVSEDITOR, VISUAL, and EDITOR.
1.1 jfb 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.11 jmc 103: .It Xo Ic 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
1.11 jmc 111: .Ic commit
1.7 jfb 112: the first revision in order to let other users see the file with the
1.11 jmc 113: .Ic update
1.4 jfb 114: or
1.11 jmc 115: .Ic checkout
1.4 jfb 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.
1.13 ! jmc 122: .Pp
! 123: Aliases:
! 124: .Ic ad ,
! 125: .Ic new .
! 126: .It Ic admin
! 127: Administration front-end for
! 128: .Xr rcs 1 .
! 129: .Pp
! 130: Aliases:
! 131: .Ic adm ,
! 132: .Ic rcs .
! 133: .It Ic annotate
! 134: Show last revision where each line was modified.
! 135: .Pp
! 136: Aliases:
! 137: .Ic ann .
1.11 jmc 138: .It Xo Ic checkout
1.7 jfb 139: .Op Fl c
140: .Op Ar module ...
141: .Xc
142: .Pp
143: The
1.11 jmc 144: .Ic checkout
1.7 jfb 145: command is used to create a local copy of one or more modules present on the
146: target CVS repository.
1.13 ! jmc 147: .Pp
! 148: Aliases:
! 149: .Ic co ,
! 150: .Ic get .
1.11 jmc 151: .It Xo Ic commit
1.3 jfb 152: .Op Fl flnR
1.8 jmc 153: .Op Fl F Ar logfile
1.1 jfb 154: .Op Fl m Ar msg
1.3 jfb 155: .Op Fl r Ar rev
1.4 jfb 156: .Op Ar file ...
1.3 jfb 157: .Xc
1.7 jfb 158: .Pp
1.1 jfb 159: The
1.11 jmc 160: .Ic commit
1.1 jfb 161: command is used to send local changes back to the server and update the
162: repository's information to reflect the changes.
1.13 ! jmc 163: .Pp
! 164: Aliases:
! 165: .Ic ci ,
! 166: .Ic com .
1.11 jmc 167: .It Xo Ic diff Op Fl cilu
1.3 jfb 168: .Op Fl D Ar date
169: .Op Fl r Ar rev
1.4 jfb 170: .Op Ar file ...
1.3 jfb 171: .Xc
1.7 jfb 172: .Pp
1.3 jfb 173: The
1.11 jmc 174: .Ic diff
1.3 jfb 175: command is very similar to the
176: .Xr diff 1
1.5 jfb 177: program, except that the differential comparisons that it generates are
1.3 jfb 178: between local or remote revisions of files stored in the CVS repository.
1.13 ! jmc 179: .Pp
! 180: Aliases:
! 181: .Ic di ,
! 182: .Ic dif .
! 183: .It Ic edit
! 184: Get ready to edit a watched file.
! 185: .It Ic editors
! 186: See who is editing a watched file.
! 187: .It Ic export
! 188: Export sources from CVS;
! 189: similar to
! 190: .Ic checkout .
! 191: .Pp
! 192: Aliases:
! 193: .Ic ex ,
! 194: .Ic exp .
! 195: .It Ic history
! 196: Show repository access history.
! 197: .Pp
! 198: Aliases:
! 199: .Ic hi ,
! 200: .Ic his .
! 201: .It Ic import
! 202: Import sources into CVS using vendor branches.
! 203: .Pp
! 204: Aliases:
! 205: .Ic im ,
! 206: .Ic imp .
! 207: .It Ic init
! 208: Create a CVS repository if it doesn't exist.
! 209: .It Ic kserver
! 210: Start a Kerberos authentication server.
! 211: .It Ic log
! 212: Print out history information for files.
! 213: .Pp
! 214: Aliases:
! 215: .Ic lo .
! 216: .It Ic login
! 217: Prompt for password for authenticating server.
! 218: .It Ic logout
! 219: Remove entry in .cvspass for remote repository.
! 220: .It Ic rdiff
! 221: Create
! 222: .Xr patch 1
! 223: format diffs between releases.
! 224: .It Ic release
! 225: Indicate that a module is no longer in use.
! 226: .It Ic remove
! 227: Remove an entry from the repository.
! 228: .It Ic rlog
! 229: Print out history information for a module.
! 230: .It Ic rtag
! 231: Add a symbolic link to a module.
! 232: .It Ic server
! 233: Server mode.
! 234: .It Ic status
! 235: Display status information on checked out files.
! 236: .Pp
! 237: Aliases:
! 238: .Ic st ,
! 239: .Ic stat .
! 240: .It Ic tag
! 241: Add a symbolic tag to checked out version of files.
! 242: .Pp
! 243: Aliases:
! 244: .Ic ta ,
! 245: .Ic freeze .
! 246: .It Ic unedit
! 247: Undo an
! 248: .Ic edit
! 249: command.
1.11 jmc 250: .It Xo Ic update
1.3 jfb 251: .Op Fl ACdP
1.4 jfb 252: .Op Ar file ...
1.3 jfb 253: .Xc
1.7 jfb 254: .Pp
1.3 jfb 255: The
1.11 jmc 256: .Ic update
1.3 jfb 257: command is used to merge any of the changes that have occured on the remote
258: repository into the local one where the command was run.
259: .Pp
260: The
261: .Fl A
1.8 jmc 262: flag resets any sticky tags, dates, or kopts that have been set on the tree.
1.3 jfb 263: The
264: .Fl l
265: flag is used to specify a local change only and disables the recursive
266: behaviour.
267: The
268: .Fl P
269: flag causes
270: .Nm
271: to prune any directories that have become empty as a result of the update.
1.13 ! jmc 272: .Pp
! 273: Aliases:
! 274: .Ic up ,
! 275: .Ic upd .
1.11 jmc 276: .It Ic version
1.3 jfb 277: Causes
278: .Nm
279: to print its version information.
280: If this command is issued within a local copy of a repository located on
1.12 jmc 281: another machine,
1.3 jfb 282: .Nm
283: will also connect to the server and ask it to print its version information.
1.13 ! jmc 284: .Pp
! 285: Aliases:
! 286: .Ic ve ,
! 287: .Ic ver .
! 288: .It Ic watch
! 289: Set watches.
! 290: .It Ic watchers
! 291: See who is watching a file.
1.1 jfb 292: .El
293: .Sh ENVIRONMENT
294: .Bl -tag -width CVS_CLIENT_LOG
1.8 jmc 295: .It Ev CVS_CLIENT_LOG
296: This variable enables logging of all communications between the client and
297: server when running in non-local mode.
298: If set, this environment variable must contain a base path from which two
299: paths will be generated by appending ".in" to the value for the server's
300: input and ".out" for the server's output.
1.1 jfb 301: .It Ev CVS_RSH
302: Name of the program to use when connecting to the server through a remote
303: shell.
304: The default is to use the
305: .Xr ssh 1
306: program.
307: .It Ev CVS_SERVER
308: If set, gives the name of the program to invoke as a
309: .Nm
310: server when using remote shell.
311: The default is to use `cvs'.
312: .It Ev CVSEDITOR
313: Name of the editor to use when editing commit messages.
1.8 jmc 314: Checked before
315: .Ev EDITOR
316: and
317: .Ev VISUAL .
318: .It Ev CVSROOT
319: When set, this variable should contain the string pointing to the root
320: directory of the CVS repository.
321: The contents of this variable are ignored when the
322: .Fl d
323: option is given or if `Root' files exist in the checked-out copy.
1.1 jfb 324: .It Ev EDITOR
1.9 jmc 325: Name of the editor to use when editing commit messages.
326: This is traditionally a line-oriented editor,
327: such as
328: .Xr ex 1 .
1.1 jfb 329: .It Ev VISUAL
1.9 jmc 330: Name of the editor to use when editing commit messages.
331: This is traditionally a screen-oriented editor,
332: such as
333: .Xr vi 1 .
1.8 jmc 334: .El
335: .Sh FILES
336: .Bl -tag -width Ds
337: .It Pa $HOME/.cvsrc
338: File containing a list of implicit options to pass to certain commands.
339: This file is read on startup unless the
340: .Fl f
341: option is specified.
342: .It Pa $CVSROOT/CVSROOT
343: Directory containing repository administrative files.
344: .It Pa $CVSROOT/CVSROOT/loginfo
345: File containing associations between modules and handlers for
346: post-commit logging.
1.1 jfb 347: .El
348: .Sh SEE ALSO
349: .Xr diff 1 ,
350: .Xr patch 1 ,
1.8 jmc 351: .Xr rcs 1 ,
1.1 jfb 352: .Xr cvsd 8
1.8 jmc 353: .Sh HISTORY
354: The OpenCVS project is a BSD-licensed rewrite of the original
355: Concurrent Versioning System written by Jean-Francois Brousseau.
356: The original CVS code was written in large parts by Dick Grune,
357: Brian Berliner and Jeff Polk.
358: .Sh AUTHORS
359: .An Jean-Francois Brousseau
360: .An Vincent Labrecque
361: .An Joris Vink
1.2 jfb 362: .Sh CAVEATS
363: This CVS implementation does not fully conform to the GNU CVS version.
1.3 jfb 364: In some cases, this was done explicitly because GNU CVS has inconsistencies
1.2 jfb 365: or ambiguous behaviour.
1.3 jfb 366: Some things have also been left out or modified to enhance the overall
367: security of the system.
368: .Pp
369: Among other things, support for the pserver connection mechanism has been
370: dropped because of security issues with the authentication mechanism.