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