[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.81

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