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