[BACK]Return to cvs.1 CVS log [TXT][DIR] Up to [local] / src / usr.bin / cvs

Annotation of src/usr.bin/cvs/cvs.1, Revision 1.90

1.90    ! xsa         1: .\"    $OpenBSD: cvs.1,v 1.89 2005/08/24 09:19:38 xsa Exp $
1.1       jfb         2: .\"
                      3: .\" Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
1.36      xsa         4: .\" Copyright (c) 2004, 2005 Xavier Santolaria <xsa@openbsd.org>
1.1       jfb         5: .\" All rights reserved.
                      6: .\"
                      7: .\" Redistribution and use in source and binary forms, with or without
                      8: .\" modification, are permitted provided that the following conditions
                      9: .\" are met:
                     10: .\"
                     11: .\" 1. Redistributions of source code must retain the above copyright
                     12: .\"    notice, this list of conditions and the following disclaimer.
                     13: .\" 2. The name of the author may not be used to endorse or promote products
                     14: .\"    derived from this software without specific prior written permission.
                     15: .\"
                     16: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
                     17: .\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
                     18: .\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
                     19: .\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
                     20: .\" EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLUDING, BUT NOT LIMITED TO,
                     21: .\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
                     22: .\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
                     23: .\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
                     24: .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
                     25: .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     26: .\"
                     27: .Dd May 16, 2004
                     28: .Dt CVS 1
                     29: .Os
                     30: .Sh NAME
                     31: .Nm cvs
1.68      joris      32: .Nd OpenCVS Concurrent Versioning System
1.1       jfb        33: .Sh SYNOPSIS
                     34: .Nm
1.84      jmc        35: .Bk -words
1.83      xsa        36: .Op Fl flnQqrtvw
1.1       jfb        37: .Op Fl d Ar root
                     38: .Op Fl e Ar editor
1.20      jmc        39: .Xo
                     40: .Oo Fl s
                     41: .Ar var Ns = Ns Ar val Oc
                     42: .Xc
1.77      xsa        43: .Op Fl T Ar tmpdir
1.15      jmc        44: .Op Fl z Ar level
1.1       jfb        45: .Ar command Op Ar ...
1.84      jmc        46: .Ek
1.1       jfb        47: .Sh DESCRIPTION
                     48: The
                     49: .Nm
                     50: program acts as both client and server for the use of and administration of
                     51: a CVS source repository.
                     52: CVS is used to maintain version information on files that are kept in a
                     53: repository.
                     54: Although it is more commonly used to track changes in source code, there
                     55: are no real limitations to the type of files that you can store in a
                     56: repository.
1.35      jmc        57: For a general introduction to CVS, see
                     58: .Xr cvsintro 7 .
1.1       jfb        59: .Pp
1.7       jfb        60: .Nm
1.35      jmc        61: reads its startup configuration file,
                     62: .Pa .cvsrc ,
1.7       jfb        63: from the home directory of the user who invoked it.
                     64: This file is used to specify implicit options passed to
                     65: .Nm
                     66: or one of its commands whenever it is invoked.
1.35      jmc        67: The defaults in the configuration file can be overridden with the
                     68: .Fl f
                     69: option (see below).
1.16      jmc        70: See
                     71: .Xr cvsrc 5
                     72: for further information.
1.7       jfb        73: .Pp
1.1       jfb        74: The following options are supported:
1.61      deraadt    75: .Bl -tag -width Ds
1.1       jfb        76: .It Fl d Ar root
                     77: Use
                     78: .Ar root
                     79: as the path to the root directory of the CVS repository.
                     80: The value must specify an absolute path.
                     81: .It Fl e Ar editor
                     82: Use the program
                     83: .Ar editor
                     84: whenever editing log information.
1.8       jmc        85: This option overrides the environment variables CVSEDITOR, VISUAL, and EDITOR.
1.1       jfb        86: .It Fl f
1.7       jfb        87: Do not read the user's configuration file on startup.
1.1       jfb        88: .It Fl l
                     89: Suppress logging of history information.
1.67      xsa        90: .It Fl n
                     91: Dry-run mode.
                     92: Show which files will be used by the command issued
                     93: without really running it.
1.1       jfb        94: .It Fl Q
                     95: Be extra quiet.
                     96: Only error messages will be displayed.
                     97: .It Fl q
                     98: Be quiet about reporting.
1.70      xsa        99: .It Fl r
                    100: Extract files in read-only mode.
1.20      jmc       101: .It Fl s Ar var Ns = Ns Ar val
                    102: Set the value of the internal variable
                    103: .Ar var
                    104: to the string
                    105: .Ar val .
1.77      xsa       106: .It Fl T Ar tmpdir
                    107: Set the value of the directory where temporary files are to be created.
                    108: The default is set to
                    109: .Pa /tmp .
1.15      jmc       110: .It Fl t
                    111: Trace program execution.
1.1       jfb       112: .It Fl v
                    113: Display version information and exit.
1.83      xsa       114: .It Fl w
                    115: Extract new files in read-write mode.
                    116: Overrides the setting of the
                    117: .Ev CVSREAD
                    118: environment variable.
                    119: This is the default unless
                    120: .Ev CVSREAD
                    121: is set or the
                    122: .Fl r
                    123: option is specified.
1.15      jmc       124: .It Fl z Ar level
                    125: Specify the compression level to
                    126: .Xr gzip 1
                    127: when transferring files.
                    128: The compression level ranges from 1 to 9,
                    129: with 1 being the fastest,
                    130: and 9 providing the best level of compression.
                    131: The default is 6.
1.45      xsa       132: .El
                    133: .Sh KEYWORD SUBSTITUTION
                    134: As long as you edit source files inside a working directory you
                    135: can always find out the state of your files via the
                    136: .Ic status
                    137: or
                    138: .Ic log
                    139: commands, but as soon as files get exported from
                    140: your local working copy, it becomes harder to identify which
                    141: revisions they are.
                    142: .Pp
                    143: .Nm
                    144: can use a mechanism known as
                    145: .Sq keyword substitution
                    146: to help identify the files.
                    147: Embedded strings of the form $keyword$ and $keyword:...$ in a file
                    148: are replaced with strings of the form $keyword: value$ whenever you
                    149: obtain a new revision of the file.
                    150: The possible keywords are as follows:
1.61      deraadt   151: .Bl -tag -width Ds
1.48      xsa       152: .It $\&Author$
1.45      xsa       153: The name of the user who checked in the revision.
1.48      xsa       154: .It $\&Date$
1.45      xsa       155: The date and hour (UTC) the revision was checked in.
1.48      xsa       156: .It $\&Header$
1.45      xsa       157: Standard header containing the full pathname of the RCS
                    158: file, the revision number, the date (UTC), the author and the state.
1.48      xsa       159: .It $\&Id$
                    160: The same content as $\&Header$ but without the path
1.45      xsa       161: of the RCS file.
1.48      xsa       162: .It $\&Log$
1.45      xsa       163: The log message supplied during commit, preceded by a header
                    164: containing the RCS filename, the revision number, the
                    165: author, and the date (UTC).
1.48      xsa       166: .It $\&Name$
1.45      xsa       167: The tag name used to check out the file.
1.48      xsa       168: .It $\&RCSfile$
1.45      xsa       169: The name of the RCS file, but without a path.
1.48      xsa       170: .It $\&Revision$
1.45      xsa       171: The revision number assigned to the revision.
1.48      xsa       172: .It $\&Source$
1.45      xsa       173: The full pathname of the RCS file.
1.48      xsa       174: .It $\&State$
1.45      xsa       175: The state assigned to the revision.
                    176: .El
                    177: .Pp
                    178: Keyword substitution has its disadvantages: sometimes the
1.48      xsa       179: literal text string $\&Author$ is wanted inside a file without
1.45      xsa       180: .Nm
                    181: interpreting it as a keyword and expanding it into something like
1.48      xsa       182: $\&Author$.
1.45      xsa       183: The
                    184: .Fl k Ar o
1.48      xsa       185: option can be used to turn off keyword substitution entirely though.
1.45      xsa       186: There is unfortunately no way to selectively turn off keyword substitution.
                    187: .Pp
                    188: Each file and working directory copy of a file have a stored
                    189: default substitution mode.
                    190: Substitution modes on files are set by the
                    191: .Fl k Ar mode
                    192: option to the
                    193: .Ic add
                    194: and
                    195: .Ic admin
                    196: commands or by the
                    197: .Fl k Ar mode
                    198: or
                    199: .Fl A
                    200: options to the
                    201: .Ic checkout
                    202: or
                    203: .Ic update
                    204: commands.
                    205: .Pp
                    206: The possible substitution modes are as follows:
                    207: .Bl -tag -width Ds -offset 3n
                    208: .It Fl k Ar b
                    209: Like
                    210: .Fl k Ar o ,
                    211: but also avoids the conversion of line endings.
                    212: This option is used to handle binary files.
                    213: .It Fl k Ar k
                    214: Does not substitute the keywords.
                    215: Useful with the
                    216: .Ic diff
                    217: command to avoid displaying the differences between keyword substitutions.
                    218: .It Fl k Ar kv
                    219: The default behaviour.
1.48      xsa       220: Keywords are normally substituted i.e. $\&Revision$ becomes
                    221: $\&Revision: 1.1 $.
1.45      xsa       222: .It Fl k Ar kvl
                    223: Like
                    224: .Fl k Ar kv ,
                    225: except that the locker's name is displayed along with the version
                    226: if the given revision is currently locked.
                    227: This option is normally not useful as
                    228: .Nm
                    229: does not use file locking by default.
                    230: .It Fl k Ar o
                    231: No substitutions are done.
                    232: This option is often used with the
                    233: .Ic import
                    234: command to guarantee that files that already contain external keywords
                    235: do not get modified.
                    236: .It Fl k Ar v
1.54      david     237: Substitute the value of keywords instead of keywords themselves
1.48      xsa       238: e.g. instead of $\&Revision$, only insert 1.1 and not $\&Revision: 1.1 $.
1.45      xsa       239: This option must be used with care, as it can only be used once.
                    240: It is often used with the
                    241: .Ic export
                    242: command to freeze the values before releasing software.
1.1       jfb       243: .El
                    244: .Sh COMMANDS
1.3       jfb       245: The following commands are supported by
1.44      jmc       246: .Nm :
1.61      deraadt   247: .Bl -tag -width Ds
1.42      xsa       248: .It Xo Ic add
                    249: .Op Fl k Ar mode
                    250: .Op Fl m Ar msg
                    251: .Ar file ...
1.3       jfb       252: .Xc
1.42      xsa       253: Before a file is known to
                    254: .Nm ,
                    255: it must be added to the repository using this command.
1.1       jfb       256: Adding a file does not actually publish the contents of the
1.42      xsa       257: file: the
1.11      jmc       258: .Ic commit
1.42      xsa       259: command must also be used to publish it into the repository,
                    260: and thus let others access the file.
                    261: .Pp
                    262: Note: since directories have no versioning system, it is sufficient
                    263: to add them with the
                    264: .Ic add
                    265: command alone; the
                    266: .Ic commit
                    267: command is not necessary.
1.1       jfb       268: .Pp
1.35      jmc       269: The
                    270: .Ic add
                    271: command takes the following options:
                    272: .Bl -tag -width Ds -offset 3n
1.42      xsa       273: .It Fl k Ar mode
                    274: Specify the keyword substitution mode.
1.35      jmc       275: .It Fl m Ar msg
                    276: Attach log message
                    277: .Ar msg .
                    278: By default, no log message is required.
                    279: .El
1.13      jmc       280: .Pp
                    281: Aliases:
                    282: .Ic ad ,
                    283: .Ic new .
1.59      xsa       284: .It Xo Ic admin
                    285: .Op Fl Iq
                    286: .Op Fl b Ar branch
                    287: .Op Fl k Ar mode
1.60      jmc       288: .Op Fl m Ar rev : Ns Ar msg
1.59      xsa       289: .Oo Fl N Ar tag Ns
                    290: .Op : Ns Ar rev Oc
                    291: .Oo Fl n Ar tag Ns
                    292: .Op : Ns Ar rev Oc
                    293: .Op Fl o Ar rev
                    294: .Oo Fl s Ar state Ns
                    295: .Op : Ns Ar rev Oc
                    296: .Oo Fl t Ar file \*(Ba
                    297: .Ar str Oc
                    298: .Xc
                    299: The
                    300: .Ic admin
                    301: command is used to directly modify the RCS files.
                    302: .Pp
                    303: The
                    304: .Ic admin
                    305: command takes the following options:
                    306: .Bl -tag -width Ds -offset 3n
                    307: .It Fl b Ar branch
                    308: Set the default branch to
                    309: .Ar branch .
                    310: .It Fl I
                    311: Command is interactive.
1.69      moritz    312: .It Fl k Ar mode
1.59      xsa       313: Specify the keyword substitution mode.
                    314: .It Fl m Ar rev : Ns Ar msg
                    315: Change the log message of a revision.
                    316: .It Xo Fl N
                    317: .Ar tag Ns Op : Ns Ar rev
                    318: .Xc
                    319: Same as
                    320: .Fl n ,
                    321: but override tag if it already exists.
                    322: .It Xo Fl n
                    323: .Ar tag Ns Op : Ns Ar rev
                    324: .Xc
                    325: Associate the
                    326: .Ar tag
                    327: with the
                    328: .Ar rev
                    329: or the branch given as argument.
                    330: If the revision or the branch is not specified, the tag is deleted.
                    331: The
                    332: .Sq \&:
                    333: character means the association of the tag and the latest revision of
                    334: the default branch.
                    335: A branch number ending with the
                    336: .Sq \&.
                    337: character means the current latest revision in the branch.
                    338: This option is functionally the same as the
                    339: .Ic rtag
                    340: command, but it avoids the check of the tags done with the
                    341: .Pa CVSROOT/taginfo
                    342: file.
                    343: .It Fl o Ar rev
                    344: Delete one or more revisions.
                    345: The specifications of the values or revisions are as follows:
1.61      deraadt   346: .Bl -tag -width Ds
1.59      xsa       347: .It rev
                    348: Specific revision.
                    349: .It rev1:rev2
                    350: Delete all revisions of a branch between
                    351: .Ar rev1
                    352: and
                    353: .Ar rev2 .
                    354: .It rev1::rev2
                    355: Delete all revisions of a branch between
                    356: .Ar rev1
                    357: and
                    358: .Ar rev2
                    359: without deleting revisions
                    360: .Ar rev1
                    361: and
                    362: .Ar rev2 .
                    363: .It :rev
                    364: Delete all revisions of the branch until revision
                    365: .Ar rev .
                    366: .It rev:
                    367: Delete all revisions of the branch from revision
                    368: .Ar rev
                    369: until the last revision of the branch.
                    370: .El
                    371: .It Fl q
                    372: Quiet mode.
                    373: .It Xo Fl s
                    374: .Ar state Ns Op : Ns Ar rev
                    375: .Xc
                    376: Change state of a revision.
                    377: If the revision is not specified, the last revision of the default
                    378: branch changes state.
                    379: The
                    380: .Ic state
                    381: is a string of characters of your choice.
                    382: The state of a revision can be modified without having to
                    383: .Ic commit
                    384: a new revision.
                    385: The default
                    386: .Ic state
                    387: is
                    388: .Sq Exp
                    389: (Experimental).
                    390: For instance, you could also use
                    391: .Sq Dev
                    392: or
                    393: .Sq Reviewed .
                    394: .It Fl t Ar file \*(Ba Ar str
                    395: Change the descriptive text.
                    396: The descriptive text is taken from the
                    397: .Ar file
                    398: specified as argument or from the string
                    399: .Ar str
                    400: given as argument if it is preceded by the
                    401: .Sq -
                    402: character.
                    403: If no argument is used, the descriptive text is taken from standard input.
                    404: .El
1.13      jmc       405: .Pp
                    406: Aliases:
                    407: .Ic adm ,
                    408: .Ic rcs .
1.26      xsa       409: .It Xo Ic annotate
                    410: .Op Fl flR
                    411: .Oo Fl D Ar date \*(Ba
                    412: .Fl r Ar rev Oc
                    413: .Op Ar file ...
                    414: .Xc
1.23      xsa       415: For each line of any files specified, show information about its
                    416: last revision.
                    417: The information given is the last revision when a modification occurred,
                    418: the author's name, and the date of the revision.
1.26      xsa       419: .Pp
                    420: The
1.35      jmc       421: .Ic annotate
                    422: command takes the following options:
                    423: .Bl -tag -width Ds -offset 3n
                    424: .It Fl D Ar date
                    425: Show the annotations as of the latest revision no later than
                    426: .Ar date .
                    427: .It Fl f
                    428: Force the use of the head revision if the specified
1.26      xsa       429: tag or date is not found.
                    430: This can be used in combination with
                    431: .Fl D
                    432: or
                    433: .Fl r
                    434: to ensure that there is some output from the
                    435: .Ic annotate
                    436: command, even if only to show Revision 1.1 of the file.
1.35      jmc       437: .It Fl l
                    438: Limit the scope of the search to the local directory
                    439: only and disable recursive behaviour.
                    440: .It Fl R
                    441: Enable recursive behaviour.
                    442: This is the default.
                    443: .It Fl r Ar rev
                    444: Show annotations as of revision
1.26      xsa       445: .Ar rev
                    446: (can be a revision number or a tag).
1.35      jmc       447: .El
1.13      jmc       448: .Pp
                    449: Aliases:
1.66      jfb       450: .Ic ann ,
                    451: .Ic blame .
1.11      jmc       452: .It Xo Ic checkout
1.37      xsa       453: .Op Fl AcflNnPpRs
                    454: .Op Fl d Ar dir
                    455: .Op Fl j Ar rev
                    456: .Op Fl k Ar mode
                    457: .Fl D Ar date \*(Ba
                    458: .Fl r Ar rev
                    459: .Ar module ...
1.7       jfb       460: .Xc
                    461: .Pp
                    462: The
1.11      jmc       463: .Ic checkout
1.7       jfb       464: command is used to create a local copy of one or more modules present on the
                    465: target CVS repository.
1.37      xsa       466: .Pp
                    467: The
                    468: .Ic checkout
                    469: command takes the following options:
                    470: .Bl -tag -width Ds -offset 3n
                    471: .It Fl A
1.41      xsa       472: Reset any sticky tags, dates, or keyword substitution modes that
                    473: have been set on the tree.
1.37      xsa       474: .It Fl c
                    475: Display the list of available modules.
                    476: .It Fl D Ar date
                    477: Check out as of the latest revision no later than
                    478: .Ar date
1.89      xsa       479: (implies
                    480: .Fl P )
1.37      xsa       481: (is sticky).
                    482: .It Fl d Ar dir
                    483: Check out in directory
                    484: .Ar dir
                    485: instead of the directory bearing the same name as the
                    486: .Ar module .
                    487: .It Fl f
                    488: Force the use of the head revision if the specified
                    489: tag or date is not found.
                    490: .It Fl j Ar rev
                    491: Merge in changes made between current revision and
                    492: .Ar rev .
                    493: If two
                    494: .Fl j
                    495: options are specified, only merge the differences between the two
                    496: revisions of the branch.
                    497: This allows successive merges without having to resolve
                    498: already resolved conflicts again.
                    499: .It Fl k Ar mode
                    500: Specify the keyword substitution mode (is sticky).
                    501: .It Fl l
                    502: Limit the scope of the search to the local directory
                    503: only and disable recursive behaviour.
                    504: .It Fl N
                    505: If used in conjunction with the
                    506: .Fl d
                    507: option, files are placed in local directory
                    508: .Ar module ,
                    509: located in directory
                    510: .Ar dir .
                    511: .It Fl n
                    512: Do not execute programs listed in the
                    513: .Pa CVSROOT/modules
                    514: file.
                    515: .It Fl P
                    516: Prune empty directories.
                    517: .It Fl p
                    518: Check out files to standard output (avoids stickiness).
                    519: .It Fl R
                    520: Enable recursive behaviour.
                    521: This is the default.
                    522: .It Fl r Ar rev
                    523: Check out from a particular revision or branch (implies
                    524: .Fl P )
                    525: (is sticky).
                    526: .It Fl s
                    527: Like
                    528: .Fl c ,
                    529: but include module status.
                    530: .El
1.13      jmc       531: .Pp
                    532: Aliases:
                    533: .Ic co ,
                    534: .Ic get .
1.11      jmc       535: .It Xo Ic commit
1.3       jfb       536: .Op Fl flnR
1.27      xsa       537: .Oo Fl F Ar logfile \*(Ba
                    538: .Fl m Ar msg Oc
1.3       jfb       539: .Op Fl r Ar rev
1.4       jfb       540: .Op Ar file ...
1.3       jfb       541: .Xc
1.7       jfb       542: .Pp
1.1       jfb       543: The
1.11      jmc       544: .Ic commit
1.1       jfb       545: command is used to send local changes back to the server and update the
                    546: repository's information to reflect the changes.
1.27      xsa       547: .Pp
                    548: The
1.35      jmc       549: .Ic commit
                    550: command takes the following options:
                    551: .Bl -tag -width Ds -offset 3n
                    552: .It Fl F Ar logfile
                    553: Specify a
1.27      xsa       554: .Ar file
1.35      jmc       555: which contains the log message.
                    556: .It Fl f
                    557: Force a file to be committed, even though it is unchanged.
                    558: .It Fl l
                    559: Limit the scope of the search to the local directory
                    560: only and disable recursive behaviour.
                    561: .It Fl m Ar msg
                    562: Specify a log message on the command line (suppresses the editor invocation).
                    563: .It Fl n
                    564: Do not execute programs listed in the
                    565: .Pa CVSROOT/modules
                    566: file.
                    567: .It Fl R
                    568: Enable recursive behaviour.
                    569: This is the default.
                    570: .It Fl r Ar rev
                    571: Commit to a particular symbolic or numerical revision.
                    572: .El
1.13      jmc       573: .Pp
                    574: Aliases:
                    575: .Ic ci ,
                    576: .Ic com .
1.53      xsa       577: .It Xo Ic diff
1.63      jfb       578: .Op Fl cilNnpRu
1.53      xsa       579: .Oo Oo Fl D
                    580: .Ar date1 \*(Ba
                    581: .Fl r Ar rev1 Oc
                    582: .Oo Fl D Ar date2 \*(Ba
                    583: .Fl r Ar rev2 Oc Oc
                    584: .Op Fl k Ar mode
1.4       jfb       585: .Op Ar file ...
1.3       jfb       586: .Xc
1.7       jfb       587: .Pp
1.3       jfb       588: The
1.11      jmc       589: .Ic diff
1.3       jfb       590: command is very similar to the
                    591: .Xr diff 1
1.5       jfb       592: program, except that the differential comparisons that it generates are
1.3       jfb       593: between local or remote revisions of files stored in the CVS repository.
1.53      xsa       594: .Pp
                    595: The
                    596: .Ic diff
                    597: command takes the following options:
                    598: .Bl -tag -width Ds -offset 3n
                    599: .It Fl c
                    600: Produces a diff with three lines of context.
                    601: See
                    602: .Xr diff 1
                    603: for more information.
                    604: .It Xo Fl D Ar date1
                    605: .Op Fl D Ar date2
                    606: .Xc
                    607: Differences between the revision at
                    608: .Ar date1
                    609: and the working copy or
                    610: .Ar date1
                    611: and
                    612: .Ar date2
                    613: (if specified).
                    614: .It Fl i
                    615: Ignore the case of letters.
                    616: For example,
                    617: .Sq A
                    618: will compare equal to
                    619: .Sq a .
                    620: .It Fl k Ar mode
                    621: Specify the keyword substitution mode.
                    622: .It Fl l
                    623: Limit the scope of the search to the local directory
                    624: only and disable recursive behaviour.
                    625: .It Fl N
                    626: Include added or removed files.
1.63      jfb       627: .It Fl n
                    628: Produces a diff in the same format as that used by
                    629: .Xr rcsdiff 1 ,
                    630: with a count of changed lines on each insert or delete command.
1.53      xsa       631: .It Fl p
                    632: With unified and context diffs, show with each change the first
                    633: 40 characters of the last line before the context beginning with
                    634: a letter, an underscore or a dollar sign.
                    635: See
                    636: .Xr diff 1
                    637: for more information.
                    638: .It Fl R
                    639: Enable recursive behaviour.
                    640: This is the default.
                    641: .It Xo Fl r Ar rev1
                    642: .Op Fl r Ar rev2
                    643: .Xc
                    644: Differences between revision
                    645: .Ar rev1
                    646: and the working copy or
                    647: .Ar rev1
                    648: and
                    649: .Ar rev2
                    650: (if specified).
                    651: .It Fl u
                    652: Produces a unified diff with three lines of context.
                    653: See
                    654: .Xr diff 1
                    655: for more information.
                    656: .El
1.13      jmc       657: .Pp
                    658: Aliases:
                    659: .Ic di ,
                    660: .Ic dif .
1.30      xsa       661: .It Xo Ic edit Op Fl lR
                    662: .Op Fl a Ar action
                    663: .Op Ar file ...
                    664: .Xc
                    665: .Pp
                    666: The
                    667: .Ic edit
1.35      jmc       668: command is used to make a file that is being watched
                    669: (and therefore read-only)
1.30      xsa       670: readable and writable and to inform others that you are planning to edit it.
                    671: Notifications terminate when the
                    672: .Ic commit
                    673: command is issued.
                    674: Editing rights on the file can be given up using the
                    675: .Ic unedit
1.35      jmc       676: command, which terminates the temporary notifications.
1.30      xsa       677: .Pp
                    678: The
1.35      jmc       679: .Ic edit
                    680: command takes the following options:
                    681: .Bl -tag -width Ds -offset 3n
                    682: .It Fl a Ar action
                    683: Specify the temporary notification wanted:
                    684: .Pp
1.61      deraadt   685: .Bl -tag -width Ds -compact
1.30      xsa       686: .It Cm commit
1.35      jmc       687: Another user has committed changes to the file.
1.30      xsa       688: .It Cm edit
                    689: Another user has issued the
                    690: .Ic edit
1.35      jmc       691: command on the file.
1.30      xsa       692: .It Cm unedit
                    693: Another user has issued the
                    694: .Ic unedit
1.35      jmc       695: command on the file.
1.30      xsa       696: .It Cm all
                    697: All of the above.
                    698: .It Cm none
                    699: None of the above.
                    700: .El
                    701: .Pp
                    702: The
                    703: .Fl a
                    704: flag may appear more than once, or not at all.
                    705: If omitted, the action defaults to
1.31      jmc       706: .Cm all .
1.35      jmc       707: .It Fl l
                    708: Limit the scope of the search to the local directory
                    709: only and disable recursive behaviour.
                    710: .It Fl R
                    711: Enable recursive behaviour.
                    712: This is the default.
                    713: .El
1.33      xsa       714: .It Xo Ic editors
                    715: .Op Fl lR
1.34      xsa       716: .Op Ar file ...
1.33      xsa       717: .Xc
                    718: .Pp
                    719: The
                    720: .Ic editors
                    721: command lists the users with edition rights on a file.
                    722: For that, pseudo-lock mode must be enabled (see the
                    723: .Ic watch
                    724: command).
                    725: The e-mail address of the user editing the file, the timestamp
                    726: when the edition first started, the host from where the edition
                    727: has been requested and the path to the edited file are listed.
                    728: .Pp
                    729: The
1.35      jmc       730: .Ic editors
                    731: command takes the following options:
                    732: .Bl -tag -width Ds -offset 3n
                    733: .It Fl l
                    734: Limit the scope of the search to the local directory
                    735: only and disable recursive behaviour.
                    736: .It Fl R
                    737: Enable recursive behaviour.
                    738: This is the default.
                    739: .El
1.36      xsa       740: .It Xo Ic export
                    741: .Op Fl flNnR
                    742: .Op Fl d Ar dir
                    743: .Op Fl k Ar mode
                    744: .Fl D Ar date \*(Ba
                    745: .Fl r Ar rev
                    746: .Ar module ...
                    747: .Xc
                    748: .Pp
                    749: The
                    750: .Ic export
                    751: command extracts a copy of
                    752: .Ar module
                    753: without including the directories used for management by
                    754: .Nm .
                    755: This eases production of a software release.
                    756: A date or a revision must be specified for the command to be valid,
                    757: which ensures that later extractions can be reproduced with the same
                    758: options as the release.
                    759: .Pp
                    760: The checked out module's files will be placed in a directory
                    761: bearing the same name as the checked out module, by default.
                    762: .Pp
                    763: The
                    764: .Ic export
                    765: command takes the following options:
                    766: .Bl -tag -width Ds -offset 3n
                    767: .It Fl D Ar date
                    768: Export as of the latest revision no later than
                    769: .Ar date .
                    770: .It Fl d Ar dir
                    771: Export in directory
                    772: .Ar dir
                    773: instead of the directory bearing the same name as the
                    774: .Ar module .
                    775: .It Fl f
                    776: Force the use of the head revision if the specified
                    777: tag or date is not found.
                    778: This can be used in combination with
                    779: .Fl D
                    780: or
                    781: .Fl r
                    782: to ensure that the
                    783: .Ic export
                    784: command is valid.
                    785: .It Fl k Ar mode
                    786: Specify the keyword substitution mode: the
                    787: .Fl k Ar v
                    788: option is often used to avoid substitution of keywords during
                    789: a release cycle.
                    790: However, be aware that it does not handle an export containing
                    791: binary files correctly.
                    792: .It Fl l
                    793: Limit the scope of the search to the local directory
                    794: only and disable recursive behaviour.
                    795: .It Fl N
                    796: If used in conjunction with the
                    797: .Fl d
                    798: option, files are placed in local directory
                    799: .Ar module ,
                    800: located in directory
                    801: .Ar dir .
                    802: .It Fl n
                    803: Do not execute programs listed in the
                    804: .Pa CVSROOT/modules
                    805: file.
                    806: .It Fl R
                    807: Enable recursive behaviour.
                    808: This is the default.
                    809: .It Fl r Ar rev
                    810: Export from a particular symbolic or numerical revision.
                    811: .El
1.13      jmc       812: .Pp
                    813: Aliases:
                    814: .Ic ex ,
                    815: .Ic exp .
1.49      xsa       816: .It Xo Ic history
                    817: .Op Fl aceloTw
                    818: .Op Fl b Ar str
                    819: .Op Fl D Ar date
                    820: .Op Fl f Ar file
                    821: .Op Fl m Ar module
                    822: .Op Fl n Ar module
                    823: .Op Fl p Ar path
                    824: .Op Fl r Ar rev
                    825: .Op Fl t Ar tag
                    826: .Op Fl u Ar user
                    827: .Op Fl x Ar ACEFGMORTUW
                    828: .Op Fl z Ar tz
                    829: .Op Ar file ...
                    830: .Xc
                    831: .Pp
                    832: The
                    833: .Ic history
                    834: command is used to display the history of actions done in the
                    835: base repository.
                    836: This functionality is only available if the
1.50      xsa       837: .Pa CVSROOT/history
1.49      xsa       838: file has been created.
                    839: Only the
                    840: .Ic checkout ,
                    841: .Ic commit ,
                    842: .Ic export ,
                    843: .Ic release ,
                    844: .Ic rtag ,
                    845: and
                    846: .Ic update
                    847: commands are logged into this file.
                    848: .Pp
                    849: The
                    850: .Ic history
                    851: command takes the following options:
                    852: .Bl -tag -width Ds -offset 3n
                    853: .It Fl a
                    854: Display records for all users.
                    855: By default, only records from the user issuing the
                    856: .Ic history
                    857: command are displayed.
                    858: .It Fl b Ar str
                    859: Display everything back to a record containing the string
                    860: .Ar str
                    861: in either the module name, the file name, or the repository path.
                    862: .It Fl c
                    863: Display the archived files
                    864: .Pf ( Ic commit
                    865: command).
                    866: .It Fl D Ar date
                    867: Report no later than
                    868: .Ar date .
                    869: .It Fl e
                    870: Select all records (same as
                    871: .Fl x
                    872: with all types).
                    873: .It Fl f Ar file
                    874: Display records related to
                    875: .Ar file .
                    876: .It Fl l
                    877: Show last checkouts of modules with the
                    878: .Ic checkout
                    879: command.
                    880: .It Fl m Ar module
                    881: Look for the
                    882: .Ar module
                    883: (can be used several times).
                    884: .It Fl n Ar module
                    885: Search into the
                    886: .Ar module .
                    887: .It Fl o
                    888: Report on modules checked out by users.
                    889: .It Fl p Ar path
                    890: Display records from the base repository being in the directory
                    891: specified by the
                    892: .Ar path .
                    893: .It Fl r Ar rev
                    894: Report for a particular revision (checks in the RCS file).
                    895: .It Fl t Ar tag
                    896: Report since tag record placed in the
1.50      xsa       897: .Pa CVSROOT/history
1.49      xsa       898: file by any user.
                    899: .It Fl T
                    900: Report on all tags.
                    901: .It Fl u Ar user
                    902: Report for a specified
                    903: .Ar user .
                    904: Can be used several times to match many users.
                    905: .It Fl w
                    906: Check that records match the current working directory.
                    907: .It Fl x Ar ACEFGMORTUW
                    908: Extract by a specific record type specified by a single letter.
                    909: They can be used in combination.
                    910: The available types are as follows:
1.61      deraadt   911: .Bl -tag -width Ds
1.49      xsa       912: .It A
                    913: A file has been added with the
                    914: .Ic add
                    915: command.
                    916: .It C
                    917: A merge has been done, but unresolved conflicts still remain.
                    918: .It E
                    919: Export.
                    920: .It F
                    921: Release.
                    922: .It G
                    923: A merge has been done without conflict.
                    924: .It M
                    925: A file has been modified (using the
                    926: .Ic commit
                    927: command).
                    928: .It O
                    929: Checkout.
                    930: .It R
                    931: A file has been removed with the
                    932: .Ic remove
                    933: command.
                    934: .It T
                    935: Rtag.
                    936: .It U
                    937: Normal update.
                    938: .It W
                    939: The file has been deleted from the directory because it does not
                    940: exist anymore in the base repository.
                    941: .El
                    942: .It Fl z Ar tz
                    943: Display records with time synchronized with the
                    944: .Ar timezone
                    945: passed as argument.
                    946: .El
                    947: .Pp
                    948: All records have the following five first columns:
                    949: .Pp
                    950: .Bl -dash -compact
                    951: .It
                    952: The record type (the
                    953: .Fl x
                    954: option).
                    955: .It
                    956: The date of the action.
                    957: .It
                    958: The time of the action.
                    959: .It
                    960: The time zone.
                    961: .It
                    962: The user who made the action.
                    963: .El
                    964: .Pp
1.51      xsa       965: The other columns vary depending on the command issued:
                    966: .Pp
                    967: For records coming from the
                    968: .Ic rtag
                    969: command, the additional columns are as follows:
                    970: .Bd -literal -offset indent
                    971: <module> [<tag>:<argument>] {<working directory>}
                    972: .Ed
                    973: .Pp
                    974: For records coming from the
                    975: .Ic checkout
                    976: and
                    977: .Ic export
                    978: commands, the additional columns are as follows:
                    979: .Bd -literal -offset indent
                    980: <request> <repository> =<module>= <working directory>
                    981: .Ed
                    982: .Pp
                    983: For records coming from the
                    984: .Ic release
                    985: command, the additional columns are as follows:
                    986: .Bd -literal -offset indent
                    987: =<module>= <working directory>
                    988: .Ed
                    989: .Pp
                    990: For records coming from the
                    991: .Ic commit
                    992: and
                    993: .Ic update
                    994: commands, the additional columns are as follows:
                    995: .Bd -literal -offset indent
                    996: <version> <file> <module> == <working directory>
                    997: .Ed
1.13      jmc       998: .Pp
                    999: Aliases:
                   1000: .Ic hi ,
                   1001: .Ic his .
1.22      jmc      1002: .It Xo Ic import
1.78      xsa      1003: .Op Fl d
1.22      jmc      1004: .Op Fl b Ar branch
1.72      xsa      1005: .Op Fl I Ar ign
                   1006: .Op Fl k Ar mode
1.22      jmc      1007: .Op Fl m Ar msg
1.72      xsa      1008: .Op Fl W Ar spec
                   1009: .Ar module
1.22      jmc      1010: .Ar vendortag
                   1011: .Ar releasetag
                   1012: .Xc
                   1013: .Pp
1.13      jmc      1014: Import sources into CVS using vendor branches.
1.22      jmc      1015: .Pp
                   1016: At least three arguments are required:
1.72      xsa      1017: .Ar module
1.22      jmc      1018: specifies the location of the sources to be imported;
                   1019: .Ar vendortag
                   1020: is a tag for the entire branch;
                   1021: .Ar releasetag
                   1022: is used to identify the files you created with
1.35      jmc      1023: .Ic cvs import .
                   1024: .Pp
                   1025: The
                   1026: .Ic import
                   1027: command takes the following options:
                   1028: .Bl -tag -width Ds -offset 3n
                   1029: .It Fl b Ar branch
                   1030: Specify the first-level branch number.
1.78      xsa      1031: .It Fl d
                   1032: Use the file's last modification time as the timestamp for the
                   1033: initial revisions.
1.72      xsa      1034: .It Fl I Ar ign
                   1035: Ignore files specified by
                   1036: .Ar ign .
                   1037: This option can be used several times on the command line.
                   1038: To see all files, use the
                   1039: .Fl I Ar !\&
                   1040: specification.
                   1041: .It Fl k Ar mode
                   1042: Specify the keyword substitution mode (is sticky).
1.35      jmc      1043: .It Fl m Ar msg
                   1044: Specify the log message to send.
1.72      xsa      1045: .It Fl W Ar spec
                   1046: Wrappers specification line.
1.35      jmc      1047: .El
1.13      jmc      1048: .Pp
                   1049: Aliases:
                   1050: .Ic im ,
                   1051: .Ic imp .
                   1052: .It Ic init
                   1053: Create a CVS repository if it doesn't exist.
                   1054: .It Ic kserver
                   1055: Start a Kerberos authentication server.
1.52      xsa      1056: .It Xo Ic log
                   1057: .Op Fl bhlNRt
                   1058: .Op Fl d Ar dates
                   1059: .Op Fl r Ar revs
                   1060: .Op Fl s Ar state
                   1061: .Op Fl w Ar users
                   1062: .Op Ar file ...
                   1063: .Xc
                   1064: .Pp
                   1065: The
                   1066: .Ic log
                   1067: command displays information on a
                   1068: .Ar file
                   1069: such as its different revisions, description, different tags,
                   1070: as well as the comments, dates, and authors of these revisions.
                   1071: By default, the
                   1072: .Ic log
                   1073: command displays all the available information; the options are only
                   1074: used to restrict the displayed information.
                   1075: .Pp
                   1076: The
                   1077: .Ic log
                   1078: command takes the following options:
                   1079: .Bl -tag -width Ds -offset 3n
                   1080: .It Fl b
                   1081: List revisions of the default branch only.
                   1082: .It Fl d Ar dates
                   1083: Specify revisions with dates matching the specification.
                   1084: The specification might be as follows:
1.61      deraadt  1085: .Bl -tag -width Ds
1.52      xsa      1086: .It D1>D2 or D2>D1
                   1087: Select all revisions between
                   1088: .Ar \&D1
                   1089: and
                   1090: .Ar D2 .
                   1091: .It <D or D>
                   1092: Select all revisions before
                   1093: .Ar D .
                   1094: .It >D or D<
                   1095: Select all revisions after
                   1096: .Ar D .
                   1097: .It D
                   1098: Select the latest revision before or equal to
                   1099: .Ar D .
                   1100: .El
                   1101: .Pp
                   1102: The
                   1103: .Sq \*(Gt
                   1104: and
                   1105: .Sq \*(Lt
                   1106: characters can be followed by the
                   1107: .Sq =
                   1108: character to imply an inclusive specification.
                   1109: Several specifications can be used by separating them with the
                   1110: .Sq \&;
                   1111: character.
                   1112: .It Fl h
                   1113: Print header only.
                   1114: .It Fl l
                   1115: Limit the scope of the search to the local directory only.
                   1116: .It Fl N
                   1117: Do not list tags.
                   1118: .It Fl R
                   1119: Print name of RCS file only.
                   1120: .It Fl r Ar revs
                   1121: Specify revision(s) to list:
1.61      deraadt  1122: .Bl -tag -width Ds
1.52      xsa      1123: .It REV1,REV2,...,
                   1124: A list of revisions is specified by separating names or numbers
                   1125: of revisions by the
                   1126: .Sq \&,
                   1127: character.
                   1128: .It REV1:REV2
                   1129: List all revisions between
                   1130: .Ar REV1
                   1131: and
                   1132: .Ar REV2
                   1133: (they must be on the same branch).
                   1134: .It :REV
                   1135: List all revisions since the beginning of the branch until
                   1136: .Ar REV
                   1137: included.
                   1138: .It REV:
                   1139: List all revisions of the branch beginning with
                   1140: .Ar REV .
                   1141: .It BRANCH
                   1142: List all revisions of a branch.
                   1143: .It BRANCH.
                   1144: List the latest revision of the branch
                   1145: .Ar BRANCH .
                   1146: .It BRANCH1:BRANCH2
                   1147: List all revisions of branches between
                   1148: .Ar BRANCH1
                   1149: and
                   1150: .Ar BRANCH2 .
                   1151: .El
                   1152: .Pp
                   1153: Without argument, the
                   1154: .Fl r
                   1155: option means the latest revision of the default branch.
                   1156: .It Fl s Ar state
                   1157: List revisions of the specified
                   1158: .Ar state
                   1159: only.
                   1160: Several states can be listed by separating them with the
                   1161: .Sq \&,
                   1162: character.
                   1163: .It Fl t
                   1164: Print header and description only.
                   1165: .It Fl w Ar users
                   1166: Do not list revisions made by specified
                   1167: .Ar users .
                   1168: Usernames should be separated by the
                   1169: .Sq \&,
                   1170: character.
                   1171: .El
1.13      jmc      1172: .Pp
                   1173: Aliases:
                   1174: .Ic lo .
                   1175: .It Ic login
1.35      jmc      1176: Prompt for a password for an authenticating server.
1.13      jmc      1177: .It Ic logout
1.35      jmc      1178: Remove an entry in
                   1179: .Pa .cvspass
                   1180: for a remote repository.
1.55      xsa      1181: .It Xo Ic rdiff
                   1182: .Op Fl flR
                   1183: .Oo Fl c \*(Ba
                   1184: .Fl u Oc
                   1185: .Oo Fl s \*(Ba
                   1186: .Fl t Oc
                   1187: .Op Fl V Ar ver
                   1188: .Fl D Ar date \*(Ba
                   1189: .Fl r Ar rev
                   1190: .Oo Fl D Ar date2 \*(Ba
                   1191: .Fl r Ar rev2 Oc
                   1192: .Ar module ...
                   1193: .Xc
                   1194: .Pp
                   1195: The
                   1196: .Ic rdiff
                   1197: command lists differences between two revisions in a
1.13      jmc      1198: .Xr patch 1
1.55      xsa      1199: compatible format.
                   1200: This command does not need a local checkout of the repository
                   1201: to work.
                   1202: .Pp
                   1203: The
                   1204: .Ic rdiff
                   1205: command takes the following options:
                   1206: .Bl -tag -width Ds -offset 3n
                   1207: .It Fl c
                   1208: Produces a diff with three lines of context.
                   1209: See
                   1210: .Xr diff 1
                   1211: for more information.
                   1212: This is the default.
                   1213: .It Xo Fl D Ar date
                   1214: .Op Fl D Ar date2
                   1215: .Xc
                   1216: Differences between the revision at
                   1217: .Ar date
                   1218: and the working copy or
                   1219: .Ar date
                   1220: and
                   1221: .Ar date2
                   1222: (if specified).
                   1223: .It Fl f
                   1224: Force the use of the head revision if the specified
                   1225: date or revision is not found.
                   1226: .It Fl l
                   1227: Limit the scope of the search to the local directory
                   1228: only and disable recursive behaviour.
                   1229: .It Fl R
                   1230: Enable recursive behaviour.
                   1231: This is the default.
                   1232: .It Xo Fl r Ar rev
                   1233: .Op Fl r Ar rev2
                   1234: .Xc
                   1235: Differences between revision
                   1236: .Ar rev
                   1237: and the working copy or
                   1238: .Ar rev
                   1239: and
                   1240: .Ar rev2
                   1241: (if specified).
                   1242: .It Fl s
                   1243: Create a summary change instead of a whole patch.
                   1244: .It Fl t
                   1245: Lists differences between the last two revisions of each file.
                   1246: .It Fl u
                   1247: Produces a diff in unidiff format.
                   1248: .It Fl V Ar ver
                   1249: Use the RCS version
                   1250: .Ar ver
                   1251: for keyword substitution.
                   1252: .El
                   1253: .Pp
                   1254: Aliases:
                   1255: .Ic pa ,
                   1256: .Ic patch .
1.39      xsa      1257: .It Xo Ic release
                   1258: .Op Fl d
                   1259: .Ar dir ...
                   1260: .Xc
                   1261: The
                   1262: .Ic release
                   1263: command indicates to
                   1264: .Nm
                   1265: that the working copy of a module is no longer in use and checks
                   1266: that non archived modifications in the base repository do exist.
                   1267: This command is not mandatory.
                   1268: Local directories could always be removed without using it, but
                   1269: in this case the handling of history information will no longer be
                   1270: correct (see the
                   1271: .Ic history
                   1272: command).
                   1273: .Pp
                   1274: The
                   1275: .Ic release
                   1276: command takes the following options:
                   1277: .Bl -tag -width Ds -offset 3n
                   1278: .It Fl d Ar dir
                   1279: Remove the directory
                   1280: .Ar dir .
                   1281: Be aware that this option silently removes any directories that have
                   1282: been added to the local working copy without using the
                   1283: .Ic add
                   1284: command.
                   1285: .El
                   1286: .Pp
                   1287: For each file not being synchronized with the base repository,
                   1288: a single letter prefix is given to specify the state of the file.
                   1289: The possible prefixes are as follows:
1.61      deraadt  1290: .Bl -tag -width Ds
1.39      xsa      1291: .It \&?
                   1292: The file is unknown to
                   1293: .Nm
                   1294: and is not in the list of files to ignore.
                   1295: Any new directories which have not been added with the
                   1296: .Ic add
                   1297: command are silently ignored as well as their content.
                   1298: .It A
                   1299: The file has been added with the
                   1300: .Ic add
                   1301: command, but has not been committed to the repository with the
                   1302: .Ic commit
                   1303: command.
                   1304: .It M
                   1305: The file has been locally modified; a more recent version might
                   1306: exist in the base repository.
                   1307: .It R
                   1308: The file has been removed with the
                   1309: .Ic remove
                   1310: command, but has not been committed to the repository with the
                   1311: .Ic commit
                   1312: command.
                   1313: .It U
                   1314: A more recent version of the file does exist but it is not
                   1315: locally up to date.
                   1316: .El
1.40      xsa      1317: .Pp
                   1318: Aliases:
                   1319: .Ic re ,
                   1320: .Ic rel .
1.18      xsa      1321: .It Xo Ic remove
                   1322: .Op Fl flR
                   1323: .Op Ar file ...
                   1324: .Xc
                   1325: The
                   1326: .Ic remove
                   1327: command is used to inform
                   1328: .Nm
                   1329: that
                   1330: .Ar file
                   1331: is scheduled to be removed from the repository.
                   1332: Files are not actually removed from the repository until the
                   1333: .Ic commit
                   1334: command has been run subsequently.
1.88      xsa      1335: .Pp
                   1336: There is no way to remove a directory with the
                   1337: .Ic remove
                   1338: command.
                   1339: .Nm
                   1340: will only remove a directory if it is empty and if the
                   1341: .Ic checkout
                   1342: or
                   1343: .Ic update
                   1344: commands are run with the
                   1345: .Fl P
                   1346: option.
                   1347: (Note that the
                   1348: .Ic export
                   1349: command always removes empty directories.)
1.28      xsa      1350: .Pp
                   1351: The
1.35      jmc      1352: .Ic remove
                   1353: command takes the following options:
                   1354: .Bl -tag -width Ds -offset 3n
                   1355: .It Fl f
                   1356: Force local file removal.
1.28      xsa      1357: If this flag is not used, the file must be locally removed beforehand for
                   1358: the command to be valid.
1.35      jmc      1359: .It Fl l
                   1360: Limit the scope of the search to the local directory
                   1361: only and disable recursive behaviour.
                   1362: .It Fl R
                   1363: Enable recursive behaviour.
                   1364: This is the default.
                   1365: .El
1.18      xsa      1366: .Pp
                   1367: Aliases:
1.19      xsa      1368: .Ic rm ,
                   1369: .Ic delete .
1.13      jmc      1370: .It Ic rlog
                   1371: Print out history information for a module.
1.56      xsa      1372: .It Xo Ic rtag
1.57      xsa      1373: .Op Fl abdFflnR
1.56      xsa      1374: .Oo Fl D Ar date \*(Ba
                   1375: .Fl r Ar rev Oc
                   1376: .Ar symbolic_tag
                   1377: .Ar modules ...
                   1378: .Xc
                   1379: The
                   1380: .Ic rtag
                   1381: command adds a symbolic tag to one or more modules.
                   1382: It is often used to create a new branch using the
                   1383: .Fl b
                   1384: option.
                   1385: .Pp
                   1386: The
                   1387: .Ic rtag
                   1388: command takes the following options:
                   1389: .Bl -tag -width Ds -offset 3n
                   1390: .It Fl a
                   1391: Clear tag from files already removed with the
                   1392: .Ic remove
                   1393: command.
                   1394: .It Fl b
                   1395: Create a branch.
                   1396: .It Fl D Ar date
                   1397: Tag the most recent revision before
                   1398: .Ar date .
                   1399: .It Fl d
                   1400: Delete tag.
                   1401: .It Fl F
                   1402: Move tag if it already exists.
                   1403: If this option is not used and a tag is used a second time,
                   1404: .Nm
                   1405: will not execute the action.
                   1406: .It Fl f
                   1407: Force the use of the head revision if the specified
                   1408: revision or date is not found.
                   1409: .It Fl l
                   1410: Limit the scope of the search to the local directory
                   1411: only and disable recursive behaviour.
                   1412: .It Fl n
                   1413: Do not execute programs listed in the
                   1414: .Pa CVSROOT/modules
                   1415: file.
                   1416: .It Fl R
                   1417: Enable recursive behaviour.
                   1418: This is the default.
                   1419: .It Fl r Ar rev
                   1420: Tag at revision
                   1421: .Ar rev .
                   1422: .El
                   1423: .Pp
                   1424: Aliases:
                   1425: .Ic rt ,
                   1426: .Ic rfreeze .
1.13      jmc      1427: .It Ic server
                   1428: Server mode.
1.25      xsa      1429: .It Xo Ic status
                   1430: .Op Fl lRv
                   1431: .Op Ar file ...
                   1432: .Xc
                   1433: The
                   1434: .Ic status
                   1435: command is used to display the state of checked out files.
                   1436: .Pp
                   1437: The
1.35      jmc      1438: .Ic status
                   1439: command takes the following options:
                   1440: .Bl -tag -width Ds -offset 3n
                   1441: .It Fl l
                   1442: Limit the scope of the search to the local directory
                   1443: only and disable recursive behaviour.
                   1444: .It Fl R
                   1445: Enable recursive behaviour.
                   1446: This is the default.
                   1447: .It Fl v
                   1448: Display symbolic tags for
                   1449: .Ar file .
1.25      xsa      1450: .Pp
1.35      jmc      1451: The state may be one of the following:
1.61      deraadt  1452: .Bl -tag -width Ds
1.25      xsa      1453: .It Cm Locally Added
                   1454: The file has been added with the
                   1455: .Ic add
                   1456: command, but has not been committed to the repository with the
                   1457: .Ic commit
                   1458: command.
                   1459: .It Cm Locally Modified
1.35      jmc      1460: The file is up to date, but has been locally modified.
1.25      xsa      1461: .It Cm Locally Removed
                   1462: The file has been removed with the
                   1463: .Ic remove
                   1464: command, but has not been committed to the repository with the
                   1465: .Ic commit
                   1466: command.
                   1467: .It Cm Needs Checkout
                   1468: The file has not been modified; a new version is available.
                   1469: .It Cm Needs Merge
                   1470: The file has been modified and a newer version is available.
                   1471: .It Cm Needs Patch
                   1472: Same as
                   1473: .Ic Needs Checkout
                   1474: but, in client-server mode, only the differences are sent to save
                   1475: network resources.
                   1476: .It Cm Unresolved Conflict
                   1477: A merge has been done, but unresolved conflicts still remain.
                   1478: .It Cm Up-to-date
                   1479: The file is up to date.
                   1480: .El
1.35      jmc      1481: .El
1.13      jmc      1482: .Pp
                   1483: Aliases:
                   1484: .Ic st ,
                   1485: .Ic stat .
1.21      jmc      1486: .It Xo Ic tag
1.58      jmc      1487: .Op Fl bcdFflR
1.57      xsa      1488: .Oo Fl D Ar date \*(Ba
                   1489: .Fl r Ar rev Oc
1.21      jmc      1490: .Op Ar symbolic_tag
                   1491: .Op Ar file ...
                   1492: .Xc
                   1493: .Pp
1.57      xsa      1494: The
                   1495: .Ic tag
                   1496: command adds a symbolic tag to a checked out version of one or more files.
1.21      jmc      1497: .Pp
                   1498: The
1.35      jmc      1499: .Ic tag
                   1500: command takes the following options:
                   1501: .Bl -tag -width Ds -offset 3n
                   1502: .It Fl b
1.57      xsa      1503: Create a branch.
                   1504: .It Fl c
                   1505: Check that working files are not modified.
                   1506: .It Fl D Ar date
                   1507: Tag the most recent revision before
                   1508: .Ar date .
1.35      jmc      1509: .It Fl d
                   1510: Delete tag.
1.57      xsa      1511: .It Fl F
                   1512: Move tag if it already exists.
                   1513: If this option is not used and a tag is used a second time,
                   1514: .Nm
                   1515: will not execute the action.
                   1516: .It Fl f
                   1517: Force the use of the head revision if the specified
                   1518: revision or date is not found.
1.35      jmc      1519: .It Fl l
                   1520: Limit the scope of the search to the local directory
                   1521: only and disable recursive behaviour.
                   1522: .It Fl R
                   1523: Enable recursive behaviour.
                   1524: This is the default.
1.57      xsa      1525: .It Fl r Ar rev
                   1526: Tag at revision
                   1527: .Ar rev .
1.35      jmc      1528: .El
1.13      jmc      1529: .Pp
                   1530: Aliases:
                   1531: .Ic ta ,
                   1532: .Ic freeze .
1.30      xsa      1533: .It Xo Ic unedit Op Fl lR
                   1534: .Op Ar file ...
                   1535: .Xc
                   1536: .Pp
                   1537: The
                   1538: .Ic unedit
                   1539: command is used to give up an edition on a file and thus cancel
                   1540: the wanted temporary notifications.
                   1541: If the file has been modified since the
1.13      jmc      1542: .Ic edit
1.30      xsa      1543: command has been issued,
                   1544: .Nm
                   1545: will ask if you want to go back to the previous version, and lose the
                   1546: modifications done on the file, or stay in edition mode on it.
                   1547: .Pp
                   1548: The
1.35      jmc      1549: .Ic unedit
                   1550: command takes the following options:
                   1551: .Bl -tag -width Ds -offset 3n
                   1552: .It Fl l
                   1553: Limit the scope of the search to the local directory
                   1554: only and disable recursive behaviour.
                   1555: .It Fl R
                   1556: Enable recursive behaviour.
                   1557: This is the default.
                   1558: .El
1.11      jmc      1559: .It Xo Ic update
1.38      xsa      1560: .Op Fl AdflPpR
                   1561: .Oo Fl D Ar date \*(Ba
                   1562: .Fl r Ar rev Oc
                   1563: .Op Fl I Ar ign
                   1564: .Op Fl j Ar rev
                   1565: .Op Fl k Ar mode
                   1566: .Op Fl W Ar spec
1.4       jfb      1567: .Op Ar file ...
1.3       jfb      1568: .Xc
1.7       jfb      1569: .Pp
1.3       jfb      1570: The
1.11      jmc      1571: .Ic update
1.17      david    1572: command is used to merge any of the changes that have occurred on the remote
1.3       jfb      1573: repository into the local one where the command was run.
                   1574: .Pp
                   1575: The
1.35      jmc      1576: .Ic update
                   1577: command takes the following options:
                   1578: .Bl -tag -width Ds -offset 3n
                   1579: .It Fl A
1.41      xsa      1580: Reset any sticky tags, dates, or keyword substitution modes that
                   1581: have been set on the tree.
1.38      xsa      1582: .It Fl D Ar date
                   1583: Update as of the latest revision no later than
                   1584: .Ar date
                   1585: (is sticky).
                   1586: .It Fl d
                   1587: Create any new directories.
                   1588: Without this option,
                   1589: .Nm
                   1590: does not create any new files sitting in these new directories
                   1591: added in the base repository since the last update of the working
                   1592: copy, or since the last update with the
                   1593: .Fl d
                   1594: option.
                   1595: .It Fl f
                   1596: Force the use of the head revision if the specified
                   1597: tag or date is not found.
                   1598: .It Fl I Ar ign
                   1599: Ignore files specified by
                   1600: .Ar ign .
                   1601: This option can be used several times on the command line.
                   1602: To see all files, use the
                   1603: .Fl I Ar !\&
                   1604: specification.
                   1605: .It Fl j Ar rev
                   1606: Merge in changes made between current revision and
                   1607: .Ar rev .
                   1608: If two
                   1609: .Fl j
                   1610: options are specified, only merge the differences between the two
                   1611: revisions of the branch.
                   1612: This allows successive merges without having to resolve
                   1613: already resolved conflicts again.
                   1614: .It Fl k Ar mode
                   1615: Specify the keyword substitution mode (is sticky).
1.35      jmc      1616: .It Fl l
                   1617: Limit the scope of the search to the local directory
                   1618: only and disable recursive behaviour.
                   1619: .It Fl P
                   1620: Prune any directories that have become empty as a result of the update.
1.38      xsa      1621: .It Fl p
                   1622: Send the result of the update to standard output (avoids stickiness).
1.35      jmc      1623: .It Fl R
                   1624: Enable recursive behaviour.
                   1625: This is the default.
1.38      xsa      1626: .It Fl r Ar rev
                   1627: Update from a particular revision or branch (is sticky).
                   1628: .It Fl W Ar spec
                   1629: Wrappers specification line.
1.35      jmc      1630: .El
1.38      xsa      1631: .Pp
                   1632: By default, the
                   1633: .Ic update
                   1634: command does not create new directories; the
                   1635: .Fl d
                   1636: option must be used for that.
1.29      xsa      1637: .Pp
                   1638: For each file updated, a single letter prefix is given to
                   1639: specify the state of the file.
                   1640: The possible prefixes are as follows:
1.61      deraadt  1641: .Bl -tag -width Ds
1.29      xsa      1642: .It \&?
                   1643: The file is unknown to
                   1644: .Nm .
                   1645: .It A
                   1646: The file has been added with the
                   1647: .Ic add
                   1648: command, but has not been committed to the repository with the
                   1649: .Ic commit
                   1650: command.
                   1651: .It C
                   1652: A merge, with a more recent version of the file, has been done,
                   1653: but unresolved conflicts still remain.
                   1654: .It M
                   1655: The file has been locally modified; if a more recent version
                   1656: is available, the merge has been done without conflict.
                   1657: .It P
                   1658: The same as
                   1659: .Sq U ,
                   1660: but, in client-server mode, only differences are sent to save network
                   1661: resources.
                   1662: .It R
                   1663: The file has been removed with the
                   1664: .Ic remove
                   1665: command, but has not been committed to the repository with the
                   1666: .Ic commit
                   1667: command.
                   1668: .It U
                   1669: The file is up to date.
                   1670: .El
1.13      jmc      1671: .Pp
                   1672: Aliases:
                   1673: .Ic up ,
                   1674: .Ic upd .
1.11      jmc      1675: .It Ic version
1.3       jfb      1676: Causes
                   1677: .Nm
                   1678: to print its version information.
1.14      jfb      1679: If this command is issued within a local copy of a remote repository or
                   1680: if either the
                   1681: .Ev CVSROOT
                   1682: environment variable or the
                   1683: .Fl d
                   1684: flag specify a remote repository,
1.3       jfb      1685: .Nm
                   1686: will also connect to the server and ask it to print its version information.
1.13      jmc      1687: .Pp
                   1688: Aliases:
                   1689: .Ic ve ,
                   1690: .Ic ver .
1.32      xsa      1691: .It Xo Ic watch
                   1692: .Ar on | off | add | remove
                   1693: .Op Fl lR
                   1694: .Op Fl a Ar action
                   1695: .Op Ar file ...
                   1696: .Xc
                   1697: .Pp
                   1698: The
                   1699: .Ic watch
                   1700: command switches a file from normal mode to
                   1701: pseudo-lock mode as well as handling the notifications associated
                   1702: with it.
                   1703: Pseudo-lock mode means knowing who is editing a file:
                   1704: for that,
                   1705: .Nm
                   1706: extracts the file in read-only mode.
                   1707: Users must use the
                   1708: .Ic edit
                   1709: command to get the editing rights on the file.
                   1710: .Pp
                   1711: One of the following arguments to the
                   1712: .Ic watch
                   1713: command is mandatory: on, off, add, or remove.
                   1714: .Ar on
                   1715: switches the file into pseudo-lock mode;
                   1716: .Ar off
                   1717: switches it back to normal mode;
                   1718: .Ar add
                   1719: adds notifications for specific actions on the file;
                   1720: .Ar remove
                   1721: removes those notifications.
                   1722: .Pp
                   1723: The notifications are permanent.
                   1724: They remain in place until the
                   1725: .Ic watch remove
                   1726: command is issued while the temporary notifications are
                   1727: made available with the
                   1728: .Ic edit
                   1729: command.
                   1730: .Pp
                   1731: The
1.35      jmc      1732: .Ic watch
                   1733: command takes the following options:
                   1734: .Bl -tag -width Ds -offset 3n
                   1735: .It Fl a Ar action
                   1736: Specify the permanent notification wanted for
1.32      xsa      1737: .Ar add | remove :
                   1738: .Pp
1.61      deraadt  1739: .Bl -tag -width Ds -compact
1.32      xsa      1740: .It Cm commit
1.35      jmc      1741: Another user has committed changes to the file.
1.32      xsa      1742: .It Cm edit
1.35      jmc      1743: Another user is editing the file.
1.32      xsa      1744: .It Cm unedit
1.35      jmc      1745: Another user has finished editing the file.
1.32      xsa      1746: .It Cm all
                   1747: All of the above.
                   1748: .It Cm none
                   1749: No notification.
                   1750: .El
                   1751: .Pp
1.35      jmc      1752: If no specification is requested using the
1.32      xsa      1753: .Ar add
                   1754: or
                   1755: .Ar remove
                   1756: arguments, it implies the
                   1757: .Fl a Ar all
                   1758: option.
1.35      jmc      1759: .It Fl l
                   1760: Limit the scope of the search to the local directory
                   1761: only and disable recursive behaviour.
                   1762: .It Fl R
                   1763: Enable recursive behaviour.
                   1764: This is the default.
                   1765: .El
1.32      xsa      1766: .It Xo Ic watchers
                   1767: .Op Fl lR
                   1768: .Op Ar file ...
                   1769: .Xc
                   1770: .Pp
                   1771: The
                   1772: .Ic watchers
                   1773: command lists the users who asked for notifications as well as the
                   1774: notifications details.
                   1775: The possible notifications are as follows:
1.61      deraadt  1776: .Bl -tag -width Ds
1.32      xsa      1777: .It Cm commit
                   1778: Permanent watch of a commit of a new version of a file.
                   1779: .It Cm edit
                   1780: Permanent watch of the start of file edition.
                   1781: .It Cm tcommit
                   1782: Temporary watch of a commit of new version of a file.
                   1783: .It Cm tedit
                   1784: Temporary watch of the start of file edition.
                   1785: .It Cm tunedit
                   1786: Temporary watch of the end of file edition.
                   1787: .It Cm unedit
                   1788: Permanent watch of the end of file edition.
                   1789: .El
                   1790: .Pp
                   1791: The temporary watches are set using the
                   1792: .Ic edit
                   1793: command, until the
                   1794: .Ic commit
                   1795: or
                   1796: .Ic unedit
1.35      jmc      1797: command is issued on a file.
                   1798: .Pp
                   1799: The
                   1800: .Ic watchers
                   1801: command takes the following options:
                   1802: .Bl -tag -width Ds -offset 3n
                   1803: .It Fl l
                   1804: Limit the scope of the search to the local directory
                   1805: only and disable recursive behaviour.
                   1806: .It Fl R
                   1807: Enable recursive behaviour.
                   1808: This is the default.
                   1809: .El
1.1       jfb      1810: .El
                   1811: .Sh ENVIRONMENT
1.61      deraadt  1812: .Bl -tag -width Ds
1.8       jmc      1813: .It Ev CVS_CLIENT_LOG
                   1814: This variable enables logging of all communications between the client and
                   1815: server when running in non-local mode.
                   1816: If set, this environment variable must contain a base path from which two
                   1817: paths will be generated by appending ".in" to the value for the server's
                   1818: input and ".out" for the server's output.
1.64      joris    1819: .Pp
1.65      joris    1820: The path can contain the following substitutes:
                   1821: .Pp
                   1822: .Bl -tag -width Ds -offset indent -compact
1.64      joris    1823: .It %c
1.65      joris    1824: the command being run
1.64      joris    1825: .It %d
1.65      joris    1826: the date
                   1827: .It %p
                   1828: the process ID
1.64      joris    1829: .It %u
1.65      joris    1830: the username of the person running it
1.64      joris    1831: .El
                   1832: .Pp
                   1833: The substitutes are only supported by OpenCVS.
1.1       jfb      1834: .It Ev CVS_RSH
                   1835: Name of the program to use when connecting to the server through a remote
                   1836: shell.
                   1837: The default is to use the
                   1838: .Xr ssh 1
                   1839: program.
                   1840: .It Ev CVS_SERVER
                   1841: If set, gives the name of the program to invoke as a
                   1842: .Nm
                   1843: server when using remote shell.
                   1844: The default is to use `cvs'.
                   1845: .It Ev CVSEDITOR
                   1846: Name of the editor to use when editing commit messages.
1.8       jmc      1847: Checked before
                   1848: .Ev EDITOR
                   1849: and
                   1850: .Ev VISUAL .
1.70      xsa      1851: .It Ev CVSREAD
                   1852: If set,
                   1853: .Nm
                   1854: extracts files in read-only mode.
1.8       jmc      1855: .It Ev CVSROOT
                   1856: When set, this variable should contain the string pointing to the root
                   1857: directory of the CVS repository.
                   1858: The contents of this variable are ignored when the
                   1859: .Fl d
                   1860: option is given or if `Root' files exist in the checked-out copy.
1.1       jfb      1861: .It Ev EDITOR
1.9       jmc      1862: Name of the editor to use when editing commit messages.
                   1863: This is traditionally a line-oriented editor,
                   1864: such as
                   1865: .Xr ex 1 .
1.74      xsa      1866: .It Ev HOME
                   1867: Directory where the
                   1868: .Pa .cvsignore
                   1869: and
                   1870: .Pa .cvsrc
                   1871: files are searched for.
1.77      xsa      1872: .It Ev TMPDIR
1.79      xsa      1873: When set, this variable specifies the directory where temporary files
1.77      xsa      1874: are to be created.
                   1875: The default is set to
                   1876: .Pa /tmp .
1.1       jfb      1877: .It Ev VISUAL
1.9       jmc      1878: Name of the editor to use when editing commit messages.
                   1879: This is traditionally a screen-oriented editor,
                   1880: such as
                   1881: .Xr vi 1 .
1.8       jmc      1882: .El
                   1883: .Sh FILES
                   1884: .Bl -tag -width Ds
1.75      xsa      1885: .It Pa $HOME/.cvsignore
                   1886: File containing a list of files (or
                   1887: .Xr sh 1
                   1888: file name patterns) that should be ignored by
1.76      jmc      1889: .Nm
1.75      xsa      1890: during the
                   1891: .Ic import ,
                   1892: .Ic release ,
                   1893: and
                   1894: .Ic update
                   1895: commands.
1.8       jmc      1896: .It Pa $HOME/.cvsrc
                   1897: File containing a list of implicit options to pass to certain commands.
                   1898: This file is read on startup unless the
                   1899: .Fl f
                   1900: option is specified.
                   1901: .It Pa $CVSROOT/CVSROOT
                   1902: Directory containing repository administrative files.
1.86      xsa      1903: .It Pa $CVSROOT/CVSROOT/history
                   1904: File containing reports of
                   1905: .Ic checkout ,
                   1906: .Ic commit ,
                   1907: .Ic export ,
                   1908: .Ic release ,
                   1909: .Ic rtag ,
                   1910: and
                   1911: .Ic update
                   1912: commands that have been issued.
                   1913: By default, the
                   1914: .Ic init
                   1915: command creates the
                   1916: .Pa history
                   1917: file.
                   1918: To disable history logging, the
                   1919: .Pa history
                   1920: file should be removed manually.
                   1921: The
                   1922: .Ic history
                   1923: command shows these reports according to several criteria.
1.8       jmc      1924: .It Pa $CVSROOT/CVSROOT/loginfo
                   1925: File containing associations between modules and handlers for
                   1926: post-commit logging.
1.85      xsa      1927: .El
                   1928: .Pp
                   1929: Each directory that is managed by
                   1930: .Nm
                   1931: contains a
                   1932: .Pa CVS
                   1933: directory.
                   1934: This directory is used by various
                   1935: .Nm
                   1936: commands to record the status of files in the current working directory.
                   1937: These files should not be modified manually by the user but by the
                   1938: .Nm
                   1939: commands instead.
                   1940: Files that are always stored in every
                   1941: .Pa CVS
                   1942: directory are as follows:
                   1943: .Bl -tag -width Ds
                   1944: .It Pa CVS/Entries
                   1945: File containing a list of files managed by
                   1946: .Nm .
                   1947: .Pa Entries
                   1948: has one line per file or directory describing the state of it with
                   1949: regard to the source repository.
                   1950: These lines have the following format:
                   1951: .Pp
                   1952: .Dl /name/revision/timestamp/options/tag
                   1953: .Bl -tag -width Ds
                   1954: .It name
                   1955: Name of the file in the directory.
                   1956: .It revision
                   1957: Revision of the file in the working directory.
                   1958: The revision is equal to
                   1959: .Sq 0
                   1960: if the file has been added with the
                   1961: .Ic add
1.87      jmc      1962: command or preceded by the
1.85      xsa      1963: .Sq -
                   1964: character if the file has been removed with the
                   1965: .Ic remove
                   1966: command.
                   1967: .It timestamp
                   1968: Contains the timestamp of the file at the time
                   1969: .Nm
                   1970: created it.
                   1971: If the timestamp is different from the actual modification time of the file,
                   1972: it means that the file has been modified.
                   1973: .It options
                   1974: Contains the keyword substitution mode used for this file.
                   1975: .It tag
                   1976: Contains
                   1977: .Sq T
                   1978: followed by a tagname or
                   1979: .Sq D
                   1980: followed by a date.
                   1981: .El
                   1982: .Pp
                   1983: Entries corresponding to directories have the following format:
                   1984: .Pp
                   1985: .Dl D/name////
                   1986: .Pp
                   1987: The lines in the
                   1988: .Pa Entries
                   1989: file can be in any order.
                   1990: .It Pa CVS/Repository
                   1991: File containing the path to the corresponding directory in the
                   1992: source repository.
                   1993: .It Pa CVS/Root
                   1994: File containing the value of the
                   1995: .Ev CVSROOT
                   1996: variable at the time of checkout.
                   1997: This file is used by all
                   1998: .Nm
                   1999: commands instead of
                   2000: .Ev CVSROOT
                   2001: once
                   2002: .Nm
                   2003: has checked for its existence.
                   2004: .El
                   2005: .Pp
                   2006: Depending on the circumstances, other files may exist in the
                   2007: .Pa CVS
                   2008: directory:
                   2009: .Bl -tag -width Ds
                   2010: .It Pa CVS/Base
                   2011: If pseudo-lock mode is enabled in client-server mode,
                   2012: the
                   2013: .Pa Base
                   2014: directory contains a copy of the file on which the
                   2015: .Ic edit
                   2016: command has been issued.
                   2017: This allows the
                   2018: .Ic unedit
                   2019: command to operate even if the CVS server is unreachable.
                   2020: .It Pa CVS/Baserev
                   2021: File listing the revisions for each file contained in the
                   2022: .Pa Base
                   2023: directory under the following format:
                   2024: .Pp
                   2025: .Dl name/revision/
                   2026: .It Pa CVS/Checkin.prog
                   2027: File containing the path to the command specified with the
                   2028: .Fl i
                   2029: option in the
                   2030: .Pa CVSROOT/modules
                   2031: file.
                   2032: .It Pa CVS/Entries.Static
                   2033: Tells
                   2034: .Nm
                   2035: to not add files to the directory unless the
                   2036: .Ic update
                   2037: command is issued with the
                   2038: .Fl d
                   2039: option.
                   2040: .It Pa CVS/Notify
                   2041: File containing the notifications that could not be sent to the
                   2042: CVS server but will be sent at the next successful connection.
                   2043: .It Pa CVS/Tag
                   2044: File containing the symbolic revision that was used at checkout.
1.90    ! xsa      2045: The first character of the line is a single letter indicating the
        !          2046: type of tag:
        !          2047: .Sq D ,
        !          2048: .Sq N ,
        !          2049: or
        !          2050: .Sq T,
        !          2051: for date, non-branch tag, or branch tag, respectively.
        !          2052: The rest of the line is the tag or date itself.
        !          2053: The
        !          2054: .Pa Tag
        !          2055: file should not be removed manually:
        !          2056: instead, use
        !          2057: .Dq update -A .
1.85      xsa      2058: .It Pa CVS/Update.prog
                   2059: File containing the path to the command specified with the
                   2060: .Fl u
                   2061: option in the
                   2062: .Pa CVSROOT/modules
                   2063: file.
                   2064: .It Pa CVS/<name>,t
                   2065: File containing the description of the file
                   2066: .Pa file
                   2067: that has been added with the
                   2068: .Ic add
                   2069: command.
                   2070: This description is used by
                   2071: .Nm
                   2072: when archiving this file with the
                   2073: .Ic commit
                   2074: command.
1.81      xsa      2075: .El
                   2076: .Sh DIAGNOSTICS
                   2077: The
                   2078: .Nm
                   2079: utility exits 0 on success, or with one of the following return codes.
                   2080: The numerical values corresponding to the symbolic ones are given in
                   2081: parentheses for easy reference.
                   2082: .Bl -tag -width Ds
                   2083: .It Dv CVS_EX_USAGE Pq 1
                   2084: The
                   2085: .Nm
                   2086: command was used incorrectly.
                   2087: Either with the wrong number of arguments, a bad flag, a bad syntax in
                   2088: a parameter, etc...
                   2089: .It Dv CVS_EX_DATA Pq 2
                   2090: The input data was incorrect in some way.
                   2091: .It Dv CVS_EX_PROTO Pq 3
                   2092: The remote system returned something that was not possible during
                   2093: a protocol exchange.
                   2094: .It Dv CVS_EX_FILE Pq 4
                   2095: An error occurred while doing an operation on a file.
                   2096: .It Dv CVS_EX_BADTAG Pq 5
1.82      jmc      2097: An error occurred while doing a tagging/untagging operation.
1.81      xsa      2098: .It Dv CVS_EX_BADROOT Pq 6
                   2099: The
                   2100: .Ev CVSROOT
                   2101: was not given or does not match the expected format.
1.1       jfb      2102: .El
                   2103: .Sh SEE ALSO
                   2104: .Xr diff 1 ,
1.15      jmc      2105: .Xr gzip 1 ,
1.1       jfb      2106: .Xr patch 1 ,
1.8       jmc      2107: .Xr rcs 1 ,
1.73      xsa      2108: .Xr cvsignore 5 ,
1.16      jmc      2109: .Xr cvsrc 5 ,
1.80      xsa      2110: .Xr cvswrappers 5 ,
1.62      xsa      2111: .Xr cvsintro 7
1.8       jmc      2112: .Sh HISTORY
                   2113: The OpenCVS project is a BSD-licensed rewrite of the original
                   2114: Concurrent Versioning System written by Jean-Francois Brousseau.
                   2115: The original CVS code was written in large parts by Dick Grune,
                   2116: Brian Berliner and Jeff Polk.
                   2117: .Sh AUTHORS
                   2118: .An Jean-Francois Brousseau
                   2119: .An Vincent Labrecque
                   2120: .An Joris Vink
1.43      jfb      2121: .An Xavier Santolaria
1.2       jfb      2122: .Sh CAVEATS
                   2123: This CVS implementation does not fully conform to the GNU CVS version.
1.3       jfb      2124: In some cases, this was done explicitly because GNU CVS has inconsistencies
1.2       jfb      2125: or ambiguous behaviour.
1.3       jfb      2126: Some things have also been left out or modified to enhance the overall
                   2127: security of the system.
                   2128: .Pp
                   2129: Among other things, support for the pserver connection mechanism has been
                   2130: dropped because of security issues with the authentication mechanism.