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

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