Annotation of src/usr.bin/cvs/cvs.1, Revision 1.123
1.123 ! sthen 1: .\" $OpenBSD: cvs.1,v 1.122 2009/03/25 09:47:26 joris 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.123 ! sthen 27: .Dd $Mdocdate: March 25 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.
1.123 ! sthen 542: .It Fl d
! 543: Try very hard to produce a diff as small as possible.
! 544: See
! 545: .Xr diff 1
! 546: for more information.
1.53 xsa 547: .It Xo Fl D Ar date1
548: .Op Fl D Ar date2
549: .Xc
550: Differences between the revision at
551: .Ar date1
552: and the working copy or
553: .Ar date1
554: and
555: .Ar date2
556: (if specified).
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).
594: .It Fl u
595: Produces a unified diff with three lines of context.
596: See
597: .Xr diff 1
598: for more information.
1.123 ! sthen 599: .It Fl w
! 600: Is similar to
! 601: .Fl b
! 602: but causes whitespace (blanks and tabs) to be totally ignored.
! 603: E.g.,
! 604: .Dq if (\ \&a == b \&)
! 605: will compare equal to
! 606: .Dq if(a==b) .
1.53 xsa 607: .El
1.13 jmc 608: .Pp
609: Aliases:
610: .Ic di ,
611: .Ic dif .
1.91 jmc 612: .Ss edit
1.30 xsa 613: The
614: .Ic edit
1.35 jmc 615: command is used to make a file that is being watched
616: (and therefore read-only)
1.121 deraadt 617: readable and writable and to inform others that it is in the
618: process of being changed.
1.30 xsa 619: Notifications terminate when the
620: .Ic commit
621: command is issued.
622: Editing rights on the file can be given up using the
623: .Ic unedit
1.35 jmc 624: command, which terminates the temporary notifications.
1.91 jmc 625: .Bd -literal -offset indent
1.107 sobrado 626: usage: cvs edit [-lR] [-a action] [file ...]
1.91 jmc 627: .Ed
1.30 xsa 628: .Pp
629: The
1.35 jmc 630: .Ic edit
631: command takes the following options:
632: .Bl -tag -width Ds -offset 3n
633: .It Fl a Ar action
634: Specify the temporary notification wanted:
635: .Pp
1.61 deraadt 636: .Bl -tag -width Ds -compact
1.30 xsa 637: .It Cm commit
1.35 jmc 638: Another user has committed changes to the file.
1.30 xsa 639: .It Cm edit
640: Another user has issued the
641: .Ic edit
1.35 jmc 642: command on the file.
1.30 xsa 643: .It Cm unedit
644: Another user has issued the
645: .Ic unedit
1.35 jmc 646: command on the file.
1.30 xsa 647: .It Cm all
648: All of the above.
649: .It Cm none
650: None of the above.
651: .El
652: .Pp
653: The
654: .Fl a
655: flag may appear more than once, or not at all.
656: If omitted, the action defaults to
1.31 jmc 657: .Cm all .
1.35 jmc 658: .It Fl l
659: Limit the scope of the search to the local directory
660: only and disable recursive behaviour.
661: .It Fl R
662: Enable recursive behaviour.
663: This is the default.
664: .El
1.91 jmc 665: .Ss editors
1.33 xsa 666: The
667: .Ic editors
668: command lists the users with edition rights on a file.
669: For that, pseudo-lock mode must be enabled (see the
670: .Ic watch
671: command).
672: The e-mail address of the user editing the file, the timestamp
673: when the edition first started, the host from where the edition
674: has been requested and the path to the edited file are listed.
1.91 jmc 675: .Bd -literal -offset indent
1.107 sobrado 676: usage: cvs editors [-lR] [file ...]
1.91 jmc 677: .Ed
1.33 xsa 678: .Pp
679: The
1.35 jmc 680: .Ic editors
681: command takes the following options:
682: .Bl -tag -width Ds -offset 3n
683: .It Fl l
684: Limit the scope of the search to the local directory
685: only and disable recursive behaviour.
686: .It Fl R
687: Enable recursive behaviour.
688: This is the default.
689: .El
1.91 jmc 690: .Ss export
1.36 xsa 691: The
692: .Ic export
693: command extracts a copy of
694: .Ar module
695: without including the directories used for management by
696: .Nm .
697: This eases production of a software release.
698: A date or a revision must be specified for the command to be valid,
699: which ensures that later extractions can be reproduced with the same
700: options as the release.
701: .Pp
702: The checked out module's files will be placed in a directory
703: bearing the same name as the checked out module, by default.
1.91 jmc 704: .Bd -literal -offset indent
1.107 sobrado 705: usage: cvs export [-flNnR] [-d dir] [-k mode]
1.91 jmc 706: -D date | -r rev module ...
707: .Ed
1.36 xsa 708: .Pp
709: The
710: .Ic export
711: command takes the following options:
712: .Bl -tag -width Ds -offset 3n
713: .It Fl D Ar date
714: Export as of the latest revision no later than
715: .Ar date .
716: .It Fl d Ar dir
717: Export in directory
718: .Ar dir
719: instead of the directory bearing the same name as the
720: .Ar module .
721: .It Fl f
722: Force the use of the head revision if the specified
723: tag or date is not found.
724: This can be used in combination with
725: .Fl D
726: or
727: .Fl r
728: to ensure that the
729: .Ic export
730: command is valid.
731: .It Fl k Ar mode
732: Specify the keyword substitution mode: the
733: .Fl k Ar v
734: option is often used to avoid substitution of keywords during
735: a release cycle.
736: However, be aware that it does not handle an export containing
737: binary files correctly.
738: .It Fl l
739: Limit the scope of the search to the local directory
740: only and disable recursive behaviour.
741: .It Fl N
742: If used in conjunction with the
743: .Fl d
744: option, files are placed in local directory
745: .Ar module ,
746: located in directory
747: .Ar dir .
748: .It Fl n
749: Do not execute programs listed in the
750: .Pa CVSROOT/modules
751: file.
752: .It Fl R
753: Enable recursive behaviour.
754: This is the default.
755: .It Fl r Ar rev
756: Export from a particular symbolic or numerical revision.
757: .El
1.13 jmc 758: .Pp
759: Aliases:
760: .Ic ex ,
761: .Ic exp .
1.91 jmc 762: .Ss history
1.49 xsa 763: The
764: .Ic history
765: command is used to display the history of actions done in the
766: base repository.
767: This functionality is only available if the
1.50 xsa 768: .Pa CVSROOT/history
1.49 xsa 769: file has been created.
770: Only the
771: .Ic checkout ,
772: .Ic commit ,
773: .Ic export ,
774: .Ic release ,
775: .Ic rtag ,
776: and
777: .Ic update
778: commands are logged into this file.
1.91 jmc 779: .Bd -literal -offset indent
1.107 sobrado 780: usage: cvs history [-aceloTw] [-b str] [-D date] [-f file]
1.91 jmc 781: [-m module] [-n module] [-p path] [-r rev]
782: [-t tag] [-u user] [-x ACEFGMORTUW] [-z tz]
783: [file ...]
784: .Ed
1.49 xsa 785: .Pp
786: The
787: .Ic history
788: command takes the following options:
789: .Bl -tag -width Ds -offset 3n
790: .It Fl a
791: Display records for all users.
792: By default, only records from the user issuing the
793: .Ic history
794: command are displayed.
795: .It Fl b Ar str
796: Display everything back to a record containing the string
797: .Ar str
798: in either the module name, the file name, or the repository path.
799: .It Fl c
800: Display the archived files
801: .Pf ( Ic commit
802: command).
803: .It Fl D Ar date
804: Report no later than
805: .Ar date .
806: .It Fl e
807: Select all records (same as
808: .Fl x
809: with all types).
810: .It Fl f Ar file
811: Display records related to
812: .Ar file .
813: .It Fl l
814: Show last checkouts of modules with the
815: .Ic checkout
816: command.
817: .It Fl m Ar module
818: Look for the
819: .Ar module
820: (can be used several times).
821: .It Fl n Ar module
822: Search into the
823: .Ar module .
824: .It Fl o
825: Report on modules checked out by users.
826: .It Fl p Ar path
827: Display records from the base repository being in the directory
828: specified by the
829: .Ar path .
830: .It Fl r Ar rev
831: Report for a particular revision (checks in the RCS file).
1.107 sobrado 832: .It Fl T
833: Report on all tags.
1.49 xsa 834: .It Fl t Ar tag
835: Report since tag record placed in the
1.50 xsa 836: .Pa CVSROOT/history
1.49 xsa 837: file by any user.
838: .It Fl u Ar user
839: Report for a specified
840: .Ar user .
841: Can be used several times to match many users.
842: .It Fl w
843: Check that records match the current working directory.
844: .It Fl x Ar ACEFGMORTUW
845: Extract by a specific record type specified by a single letter.
846: They can be used in combination.
847: The available types are as follows:
1.61 deraadt 848: .Bl -tag -width Ds
1.49 xsa 849: .It A
850: A file has been added with the
851: .Ic add
852: command.
853: .It C
854: A merge has been done, but unresolved conflicts still remain.
855: .It E
856: Export.
857: .It F
858: Release.
859: .It G
860: A merge has been done without conflict.
861: .It M
862: A file has been modified (using the
863: .Ic commit
864: command).
865: .It O
866: Checkout.
867: .It R
868: A file has been removed with the
869: .Ic remove
870: command.
871: .It T
872: Rtag.
873: .It U
874: Normal update.
875: .It W
876: The file has been deleted from the directory because it does not
877: exist anymore in the base repository.
878: .El
879: .It Fl z Ar tz
1.107 sobrado 880: Display records with the time synchronized with timezone
881: .Ar tz .
1.49 xsa 882: .El
883: .Pp
884: All records have the following five first columns:
885: .Pp
886: .Bl -dash -compact
887: .It
888: The record type (the
889: .Fl x
890: option).
891: .It
892: The date of the action.
893: .It
894: The time of the action.
895: .It
896: The time zone.
897: .It
898: The user who made the action.
899: .El
900: .Pp
1.51 xsa 901: The other columns vary depending on the command issued:
902: .Pp
903: For records coming from the
904: .Ic rtag
905: command, the additional columns are as follows:
906: .Bd -literal -offset indent
907: <module> [<tag>:<argument>] {<working directory>}
908: .Ed
909: .Pp
910: For records coming from the
911: .Ic checkout
912: and
913: .Ic export
914: commands, the additional columns are as follows:
915: .Bd -literal -offset indent
916: <request> <repository> =<module>= <working directory>
917: .Ed
918: .Pp
919: For records coming from the
920: .Ic release
921: command, the additional columns are as follows:
922: .Bd -literal -offset indent
923: =<module>= <working directory>
924: .Ed
925: .Pp
926: For records coming from the
927: .Ic commit
928: and
929: .Ic update
930: commands, the additional columns are as follows:
931: .Bd -literal -offset indent
932: <version> <file> <module> == <working directory>
933: .Ed
1.13 jmc 934: .Pp
935: Aliases:
936: .Ic hi ,
937: .Ic his .
1.91 jmc 938: .Ss import
1.13 jmc 939: Import sources into CVS using vendor branches.
1.22 jmc 940: .Pp
941: At least three arguments are required:
1.72 xsa 942: .Ar module
1.22 jmc 943: specifies the location of the sources to be imported;
944: .Ar vendortag
945: is a tag for the entire branch;
946: .Ar releasetag
1.121 deraadt 947: is used to identify the files created with
1.35 jmc 948: .Ic cvs import .
1.91 jmc 949: .Bd -literal -offset indent
1.107 sobrado 950: usage: cvs import [-d] [-b branch] [-I ign] [-k mode] [-m msg]
1.91 jmc 951: [-W spec] module vendortag releasetag
952: .Ed
1.35 jmc 953: .Pp
954: The
955: .Ic import
956: command takes the following options:
957: .Bl -tag -width Ds -offset 3n
958: .It Fl b Ar branch
959: Specify the first-level branch number.
1.78 xsa 960: .It Fl d
961: Use the file's last modification time as the timestamp for the
962: initial revisions.
1.72 xsa 963: .It Fl I Ar ign
964: Ignore files specified by
965: .Ar ign .
966: This option can be used several times on the command line.
967: To see all files, use the
968: .Fl I Ar !\&
969: specification.
970: .It Fl k Ar mode
971: Specify the keyword substitution mode (is sticky).
1.35 jmc 972: .It Fl m Ar msg
973: Specify the log message to send.
1.72 xsa 974: .It Fl W Ar spec
975: Wrappers specification line.
1.35 jmc 976: .El
1.13 jmc 977: .Pp
978: Aliases:
979: .Ic im ,
980: .Ic imp .
1.91 jmc 981: .Ss init
1.13 jmc 982: Create a CVS repository if it doesn't exist.
1.91 jmc 983: .Ss kserver
1.13 jmc 984: Start a Kerberos authentication server.
1.91 jmc 985: .Ss log
1.52 xsa 986: The
987: .Ic log
988: command displays information on a
989: .Ar file
990: such as its different revisions, description, different tags,
991: as well as the comments, dates, and authors of these revisions.
992: By default, the
993: .Ic log
994: command displays all the available information; the options are only
995: used to restrict the displayed information.
1.91 jmc 996: .Bd -literal -offset indent
1.107 sobrado 997: usage: cvs log [-bhlNRt] [-d dates] [-r revs] [-s state]
1.91 jmc 998: [-w users] [file ...]
999: .Ed
1.52 xsa 1000: .Pp
1001: The
1002: .Ic log
1003: command takes the following options:
1004: .Bl -tag -width Ds -offset 3n
1005: .It Fl b
1006: List revisions of the default branch only.
1007: .It Fl d Ar dates
1008: Specify revisions with dates matching the specification.
1009: The specification might be as follows:
1.61 deraadt 1010: .Bl -tag -width Ds
1.108 sobrado 1011: .It date1<date2 or date2>date1
1.52 xsa 1012: Select all revisions between
1.108 sobrado 1013: .Ar date1
1.52 xsa 1014: and
1.108 sobrado 1015: .Ar date2 .
1016: .It <date or date>
1.52 xsa 1017: Select all revisions before
1.108 sobrado 1018: .Ar date .
1019: .It >date or date<
1.52 xsa 1020: Select all revisions after
1.108 sobrado 1021: .Ar date .
1022: .It date
1.52 xsa 1023: Select the latest revision before or equal to
1.108 sobrado 1024: .Ar date .
1.52 xsa 1025: .El
1026: .Pp
1027: The
1028: .Sq \*(Gt
1029: and
1030: .Sq \*(Lt
1031: characters can be followed by the
1032: .Sq =
1033: character to imply an inclusive specification.
1034: Several specifications can be used by separating them with the
1035: .Sq \&;
1036: character.
1037: .It Fl h
1038: Print header only.
1039: .It Fl l
1040: Limit the scope of the search to the local directory only.
1041: .It Fl N
1042: Do not list tags.
1043: .It Fl R
1044: Print name of RCS file only.
1045: .It Fl r Ar revs
1046: Specify revision(s) to list:
1.61 deraadt 1047: .Bl -tag -width Ds
1.107 sobrado 1048: .It rev1,rev2,...
1.52 xsa 1049: A list of revisions is specified by separating names or numbers
1050: of revisions by the
1051: .Sq \&,
1052: character.
1.107 sobrado 1053: .It rev1:rev2
1.52 xsa 1054: List all revisions between
1.107 sobrado 1055: .Ar rev1
1.52 xsa 1056: and
1.107 sobrado 1057: .Ar rev2
1.52 xsa 1058: (they must be on the same branch).
1.107 sobrado 1059: .It :rev
1.52 xsa 1060: List all revisions since the beginning of the branch until
1.107 sobrado 1061: .Ar rev
1.52 xsa 1062: included.
1.107 sobrado 1063: .It rev:
1.52 xsa 1064: List all revisions of the branch beginning with
1.107 sobrado 1065: .Ar rev .
1066: .It branch
1.52 xsa 1067: List all revisions of a branch.
1.107 sobrado 1068: .It branch.
1.52 xsa 1069: List the latest revision of the branch
1.107 sobrado 1070: .Ar branch .
1071: .It branch1:branch2
1.52 xsa 1072: List all revisions of branches between
1.107 sobrado 1073: .Ar branch1
1.52 xsa 1074: and
1.107 sobrado 1075: .Ar branch2 .
1.52 xsa 1076: .El
1077: .Pp
1078: Without argument, the
1079: .Fl r
1080: option means the latest revision of the default branch.
1081: .It Fl s Ar state
1082: List revisions of the specified
1083: .Ar state
1084: only.
1085: Several states can be listed by separating them with the
1086: .Sq \&,
1087: character.
1088: .It Fl t
1089: Print header and description only.
1090: .It Fl w Ar users
1091: Do not list revisions made by specified
1092: .Ar users .
1093: Usernames should be separated by the
1094: .Sq \&,
1095: character.
1096: .El
1.13 jmc 1097: .Pp
1098: Aliases:
1099: .Ic lo .
1.115 xsa 1100: .Ss rannotate
1101: For each line of any files specified, show information about its
1102: last revision.
1103: The information given is the last revision when a modification occurred,
1104: the author's name, and the date of the revision.
1105: This command does not need a local checkout of the repository
1106: to work.
1107: .Bd -literal -offset indent
1.118 xsa 1108: usage: cvs rannotate [flR] [-D date | -r rev] module ...
1.115 xsa 1109: .Ed
1110: .Pp
1.119 xsa 1111: The
1.115 xsa 1112: .Ic rannotate
1113: command takes the following options:
1114: .Bl -tag -width Ds -offset 3n
1115: .It Fl D Ar date
1116: Show the annotations as of the latest revision no later than
1117: .Ar date .
1118: .It Fl f
1119: Force the use of the head revision if the specified
1120: tag or date is not found.
1121: This can be used in combination with
1122: .Fl D
1123: or
1.119 xsa 1124: .Fl r
1.115 xsa 1125: to ensure that there is some output from the
1126: .Ic rannotate
1127: command, even if only to show Revision 1.1 of the file.
1128: .It Fl l
1129: Limit the scope of the search to the local directory
1130: only and disable recursive behaviour.
1131: .It Fl R
1132: Enable recursive behaviour.
1133: This is the default.
1134: .It Fl r Ar rev
1135: Show annotations as of revision
1.119 xsa 1136: .Ar rev
1.115 xsa 1137: (can be a revision number or a tag).
1138: .El
1139: .Pp
1140: Aliases:
1141: .Ic rann ,
1142: .Ic ra .
1.91 jmc 1143: .Ss rdiff
1.55 xsa 1144: The
1145: .Ic rdiff
1146: command lists differences between two revisions in a
1.13 jmc 1147: .Xr patch 1
1.55 xsa 1148: compatible format.
1149: This command does not need a local checkout of the repository
1150: to work.
1.91 jmc 1151: .Bd -literal -offset indent
1.107 sobrado 1152: usage: cvs rdiff [-flR] [-c | -u] [-s | -t] [-V ver]
1.91 jmc 1153: -D date | -r rev [-D date2 | -r rev2]
1154: module ...
1155: .Ed
1.55 xsa 1156: .Pp
1157: The
1158: .Ic rdiff
1159: command takes the following options:
1160: .Bl -tag -width Ds -offset 3n
1161: .It Fl c
1162: Produces a diff with three lines of context.
1163: See
1164: .Xr diff 1
1165: for more information.
1166: This is the default.
1167: .It Xo Fl D Ar date
1168: .Op Fl D Ar date2
1169: .Xc
1170: Differences between the revision at
1171: .Ar date
1172: and the working copy or
1173: .Ar date
1174: and
1175: .Ar date2
1176: (if specified).
1177: .It Fl f
1178: Force the use of the head revision if the specified
1179: date or revision is not found.
1180: .It Fl l
1181: Limit the scope of the search to the local directory
1182: only and disable recursive behaviour.
1183: .It Fl R
1184: Enable recursive behaviour.
1185: This is the default.
1186: .It Xo Fl r Ar rev
1187: .Op Fl r Ar rev2
1188: .Xc
1189: Differences between revision
1190: .Ar rev
1191: and the working copy or
1192: .Ar rev
1193: and
1194: .Ar rev2
1195: (if specified).
1196: .It Fl s
1197: Create a summary change instead of a whole patch.
1198: .It Fl t
1199: Lists differences between the last two revisions of each file.
1200: .It Fl u
1201: Produces a diff in unidiff format.
1202: .It Fl V Ar ver
1203: Use the RCS version
1204: .Ar ver
1205: for keyword substitution.
1206: .El
1207: .Pp
1208: Aliases:
1209: .Ic pa ,
1210: .Ic patch .
1.91 jmc 1211: .Ss release
1.39 xsa 1212: The
1213: .Ic release
1214: command indicates to
1215: .Nm
1216: that the working copy of a module is no longer in use and checks
1217: that non archived modifications in the base repository do exist.
1218: This command is not mandatory.
1219: Local directories could always be removed without using it, but
1220: in this case the handling of history information will no longer be
1221: correct (see the
1222: .Ic history
1223: command).
1.91 jmc 1224: .Bd -literal -offset indent
1.107 sobrado 1225: usage: cvs release [-d] dir ...
1.91 jmc 1226: .Ed
1.39 xsa 1227: .Pp
1228: The
1229: .Ic release
1230: command takes the following options:
1231: .Bl -tag -width Ds -offset 3n
1232: .It Fl d Ar dir
1233: Remove the directory
1234: .Ar dir .
1235: Be aware that this option silently removes any directories that have
1236: been added to the local working copy without using the
1237: .Ic add
1238: command.
1239: .El
1240: .Pp
1241: For each file not being synchronized with the base repository,
1242: a single letter prefix is given to specify the state of the file.
1243: The possible prefixes are as follows:
1.61 deraadt 1244: .Bl -tag -width Ds
1.39 xsa 1245: .It \&?
1246: The file is unknown to
1247: .Nm
1248: and is not in the list of files to ignore.
1249: Any new directories which have not been added with the
1250: .Ic add
1251: command are silently ignored as well as their content.
1252: .It A
1253: The file has been added with the
1254: .Ic add
1255: command, but has not been committed to the repository with the
1256: .Ic commit
1257: command.
1258: .It M
1259: The file has been locally modified; a more recent version might
1260: exist in the base repository.
1261: .It R
1262: The file has been removed with the
1263: .Ic remove
1264: command, but has not been committed to the repository with the
1265: .Ic commit
1266: command.
1267: .It U
1268: A more recent version of the file does exist but it is not
1269: locally up to date.
1270: .El
1.40 xsa 1271: .Pp
1272: Aliases:
1273: .Ic re ,
1274: .Ic rel .
1.91 jmc 1275: .Ss remove
1.18 xsa 1276: The
1277: .Ic remove
1278: command is used to inform
1279: .Nm
1280: that
1281: .Ar file
1282: is scheduled to be removed from the repository.
1283: Files are not actually removed from the repository until the
1284: .Ic commit
1285: command has been run subsequently.
1.88 xsa 1286: .Pp
1287: There is no way to remove a directory with the
1288: .Ic remove
1289: command.
1290: .Nm
1291: will only remove a directory if it is empty and if the
1292: .Ic checkout
1293: or
1294: .Ic update
1295: commands are run with the
1296: .Fl P
1297: option.
1298: (Note that the
1299: .Ic export
1300: command always removes empty directories.)
1.91 jmc 1301: .Bd -literal -offset indent
1.107 sobrado 1302: usage: cvs remove [-flR] [file ...]
1.91 jmc 1303: .Ed
1.28 xsa 1304: .Pp
1305: The
1.35 jmc 1306: .Ic remove
1307: command takes the following options:
1308: .Bl -tag -width Ds -offset 3n
1309: .It Fl f
1310: Force local file removal.
1.28 xsa 1311: If this flag is not used, the file must be locally removed beforehand for
1312: the command to be valid.
1.35 jmc 1313: .It Fl l
1314: Limit the scope of the search to the local directory
1315: only and disable recursive behaviour.
1316: .It Fl R
1317: Enable recursive behaviour.
1318: This is the default.
1319: .El
1.18 xsa 1320: .Pp
1321: Aliases:
1.19 xsa 1322: .Ic rm ,
1323: .Ic delete .
1.91 jmc 1324: .Ss rlog
1.117 xsa 1325: The
1326: .Ic rlog
1327: command displays information on a
1328: .Ar file
1329: such as its different revisions, description, different tags,
1330: as well as the comments, dates, and authors of these revisions.
1331: By default, the
1332: .Ic rlog
1333: command displays all the available information; the options are only
1334: used to restrict the displayed information.
1335: This command does not need a local checkout of the repository
1336: to work.
1337: .Bd -literal -offset indent
1338: usage: cvs rlog [-bhlNRt] [-d dates] [-r revs] [-s state]
1339: [-w users] module ...
1340: .Ed
1341: .Pp
1342: The
1343: .Ic rlog
1344: command takes the following options:
1345: .Bl -tag -width Ds -offset 3n
1346: .It Fl b
1347: List revisions of the default branch only.
1348: .It Fl d Ar dates
1349: Specify revisions with dates matching the specification.
1350: The specification might be as follows:
1351: .Bl -tag -width Ds
1352: .It date1<date2 or date2>date1
1353: Select all revisions between
1354: .Ar date1
1355: and
1356: .Ar date2 .
1357: .It <date or date>
1358: Select all revisions before
1359: .Ar date .
1360: .It >date or date<
1361: Select all revisions after
1362: .Ar date .
1363: .It date
1364: Select the latest revision before or equal to
1365: .Ar date .
1366: .El
1367: .Pp
1368: The
1369: .Sq \*(Gt
1370: and
1371: .Sq \*(Lt
1372: characters can be followed by the
1373: .Sq =
1374: character to imply an inclusive specification.
1375: Several specifications can be used by separating them with the
1376: .Sq \&;
1377: character.
1378: .It Fl h
1379: Print header only.
1380: .It Fl l
1381: Limit the scope of the search to the local directory only.
1382: .It Fl N
1383: Do not list tags.
1384: .It Fl R
1385: Print name of RCS file only.
1386: .It Fl r Ar revs
1387: Specify revision(s) to list:
1388: .Bl -tag -width Ds
1389: .It rev1,rev2,...
1390: A list of revisions is specified by separating names or numbers
1391: of revisions by the
1392: .Sq \&,
1393: character.
1394: .It rev1:rev2
1395: List all revisions between
1396: .Ar rev1
1397: and
1398: .Ar rev2
1399: (they must be on the same branch).
1400: .It :rev
1401: List all revisions since the beginning of the branch until
1402: .Ar rev
1403: included.
1404: .It rev:
1405: List all revisions of the branch beginning with
1406: .Ar rev .
1407: .It branch
1408: List all revisions of a branch.
1409: .It branch.
1410: List the latest revision of the branch
1411: .Ar branch .
1412: .It branch1:branch2
1413: List all revisions of branches between
1414: .Ar branch1
1415: and
1416: .Ar branch2 .
1417: .El
1418: .Pp
1419: Without argument, the
1420: .Fl r
1421: option means the latest revision of the default branch.
1422: .It Fl s Ar state
1423: List revisions of the specified
1424: .Ar state
1425: only.
1426: Several states can be listed by separating them with the
1427: .Sq \&,
1428: character.
1429: .It Fl t
1430: Print header and description only.
1431: .It Fl w Ar users
1432: Do not list revisions made by specified
1433: .Ar users .
1434: Usernames should be separated by the
1435: .Sq \&,
1436: character.
1437: .El
1438: .Pp
1439: Aliases:
1440: .Ic rlo .
1.91 jmc 1441: .Ss rtag
1.56 xsa 1442: The
1443: .Ic rtag
1444: command adds a symbolic tag to one or more modules.
1445: It is often used to create a new branch using the
1446: .Fl b
1447: option.
1.91 jmc 1448: .Bd -literal -offset indent
1.107 sobrado 1449: usage: cvs rtag [-abdFflnR] [-D date | -r rev]
1.91 jmc 1450: symbolic_tag module ...
1451: .Ed
1.56 xsa 1452: .Pp
1453: The
1454: .Ic rtag
1455: command takes the following options:
1456: .Bl -tag -width Ds -offset 3n
1457: .It Fl a
1458: Clear tag from files already removed with the
1459: .Ic remove
1460: command.
1461: .It Fl b
1462: Create a branch.
1463: .It Fl D Ar date
1464: Tag the most recent revision before
1465: .Ar date .
1466: .It Fl d
1467: Delete tag.
1468: .It Fl F
1469: Move tag if it already exists.
1470: If this option is not used and a tag is used a second time,
1471: .Nm
1472: will not execute the action.
1473: .It Fl f
1474: Force the use of the head revision if the specified
1475: revision or date is not found.
1476: .It Fl l
1477: Limit the scope of the search to the local directory
1478: only and disable recursive behaviour.
1479: .It Fl n
1480: Do not execute programs listed in the
1481: .Pa CVSROOT/modules
1482: file.
1483: .It Fl R
1484: Enable recursive behaviour.
1485: This is the default.
1486: .It Fl r Ar rev
1487: Tag at revision
1488: .Ar rev .
1489: .El
1490: .Pp
1491: Aliases:
1492: .Ic rt ,
1493: .Ic rfreeze .
1.91 jmc 1494: .Ss server
1.13 jmc 1495: Server mode.
1.91 jmc 1496: .Ss status
1.25 xsa 1497: The
1498: .Ic status
1499: command is used to display the state of checked out files.
1.91 jmc 1500: .Bd -literal -offset indent
1.107 sobrado 1501: usage: cvs status [-lRv] [file ...]
1.91 jmc 1502: .Ed
1.25 xsa 1503: .Pp
1504: The
1.35 jmc 1505: .Ic status
1506: command takes the following options:
1507: .Bl -tag -width Ds -offset 3n
1508: .It Fl l
1509: Limit the scope of the search to the local directory
1510: only and disable recursive behaviour.
1511: .It Fl R
1512: Enable recursive behaviour.
1513: This is the default.
1514: .It Fl v
1515: Display symbolic tags for
1516: .Ar file .
1.25 xsa 1517: .Pp
1.35 jmc 1518: The state may be one of the following:
1.61 deraadt 1519: .Bl -tag -width Ds
1.25 xsa 1520: .It Cm Locally Added
1521: The file has been added with the
1522: .Ic add
1523: command, but has not been committed to the repository with the
1524: .Ic commit
1525: command.
1526: .It Cm Locally Modified
1.35 jmc 1527: The file is up to date, but has been locally modified.
1.25 xsa 1528: .It Cm Locally Removed
1529: The file has been removed with the
1530: .Ic remove
1531: command, but has not been committed to the repository with the
1532: .Ic commit
1533: command.
1534: .It Cm Needs Checkout
1535: The file has not been modified; a new version is available.
1536: .It Cm Needs Merge
1537: The file has been modified and a newer version is available.
1538: .It Cm Needs Patch
1539: Same as
1540: .Ic Needs Checkout
1541: but, in client-server mode, only the differences are sent to save
1542: network resources.
1543: .It Cm Unresolved Conflict
1544: A merge has been done, but unresolved conflicts still remain.
1545: .It Cm Up-to-date
1546: The file is up to date.
1547: .El
1.35 jmc 1548: .El
1.13 jmc 1549: .Pp
1550: Aliases:
1551: .Ic st ,
1552: .Ic stat .
1.91 jmc 1553: .Ss tag
1.57 xsa 1554: The
1555: .Ic tag
1556: command adds a symbolic tag to a checked out version of one or more files.
1.91 jmc 1557: .Bd -literal -offset indent
1.107 sobrado 1558: usage: cvs tag [-bcdFflR] [-D date | -r rev] [symbolic_tag]
1.91 jmc 1559: [file ...]
1560: .Ed
1.21 jmc 1561: .Pp
1562: The
1.35 jmc 1563: .Ic tag
1564: command takes the following options:
1565: .Bl -tag -width Ds -offset 3n
1566: .It Fl b
1.57 xsa 1567: Create a branch.
1568: .It Fl c
1569: Check that working files are not modified.
1570: .It Fl D Ar date
1571: Tag the most recent revision before
1572: .Ar date .
1.35 jmc 1573: .It Fl d
1574: Delete tag.
1.57 xsa 1575: .It Fl F
1576: Move tag if it already exists.
1577: If this option is not used and a tag is used a second time,
1578: .Nm
1579: will not execute the action.
1580: .It Fl f
1581: Force the use of the head revision if the specified
1582: revision or date is not found.
1.35 jmc 1583: .It Fl l
1584: Limit the scope of the search to the local directory
1585: only and disable recursive behaviour.
1586: .It Fl R
1587: Enable recursive behaviour.
1588: This is the default.
1.57 xsa 1589: .It Fl r Ar rev
1590: Tag at revision
1591: .Ar rev .
1.35 jmc 1592: .El
1.13 jmc 1593: .Pp
1594: Aliases:
1595: .Ic ta ,
1596: .Ic freeze .
1.91 jmc 1597: .Ss unedit
1.30 xsa 1598: The
1599: .Ic unedit
1600: command is used to give up an edition on a file and thus cancel
1601: the wanted temporary notifications.
1602: If the file has been modified since the
1.13 jmc 1603: .Ic edit
1.30 xsa 1604: command has been issued,
1605: .Nm
1.121 deraadt 1606: will ask if it should go back to the previous version, and lose the
1.30 xsa 1607: modifications done on the file, or stay in edition mode on it.
1.91 jmc 1608: .Bd -literal -offset indent
1.107 sobrado 1609: usage: cvs unedit [-lR] [file ...]
1.91 jmc 1610: .Ed
1.30 xsa 1611: .Pp
1612: The
1.35 jmc 1613: .Ic unedit
1614: command takes the following options:
1615: .Bl -tag -width Ds -offset 3n
1616: .It Fl l
1617: Limit the scope of the search to the local directory
1618: only and disable recursive behaviour.
1619: .It Fl R
1620: Enable recursive behaviour.
1621: This is the default.
1622: .El
1.91 jmc 1623: .Ss update
1.3 jfb 1624: The
1.11 jmc 1625: .Ic update
1.17 david 1626: command is used to merge any of the changes that have occurred on the remote
1.3 jfb 1627: repository into the local one where the command was run.
1.91 jmc 1628: .Bd -literal -offset indent
1.107 sobrado 1629: usage: cvs update [-ACdflPpR] [-D date | -r rev] [-I ign]
1.91 jmc 1630: [-j rev] [-k mode] [-W spec] [file ...]
1631: .Ed
1.3 jfb 1632: .Pp
1633: The
1.35 jmc 1634: .Ic update
1635: command takes the following options:
1636: .Bl -tag -width Ds -offset 3n
1637: .It Fl A
1.41 xsa 1638: Reset any sticky tags, dates, or keyword substitution modes that
1639: have been set on the tree.
1.102 xsa 1640: .It Fl C
1641: Overwrite locally modified files with clean repository copies.
1.38 xsa 1642: .It Fl D Ar date
1643: Update as of the latest revision no later than
1644: .Ar date
1645: (is sticky).
1646: .It Fl d
1647: Create any new directories.
1648: Without this option,
1649: .Nm
1650: does not create any new files sitting in these new directories
1651: added in the base repository since the last update of the working
1652: copy, or since the last update with the
1653: .Fl d
1654: option.
1655: .It Fl f
1656: Force the use of the head revision if the specified
1657: tag or date is not found.
1658: .It Fl I Ar ign
1659: Ignore files specified by
1660: .Ar ign .
1661: This option can be used several times on the command line.
1662: To see all files, use the
1663: .Fl I Ar !\&
1664: specification.
1665: .It Fl j Ar rev
1666: Merge in changes made between current revision and
1667: .Ar rev .
1668: If two
1669: .Fl j
1670: options are specified, only merge the differences between the two
1671: revisions of the branch.
1672: This allows successive merges without having to resolve
1673: already resolved conflicts again.
1674: .It Fl k Ar mode
1675: Specify the keyword substitution mode (is sticky).
1.35 jmc 1676: .It Fl l
1677: Limit the scope of the search to the local directory
1678: only and disable recursive behaviour.
1679: .It Fl P
1680: Prune any directories that have become empty as a result of the update.
1.38 xsa 1681: .It Fl p
1682: Send the result of the update to standard output (avoids stickiness).
1.35 jmc 1683: .It Fl R
1684: Enable recursive behaviour.
1685: This is the default.
1.38 xsa 1686: .It Fl r Ar rev
1687: Update from a particular revision or branch (is sticky).
1688: .It Fl W Ar spec
1689: Wrappers specification line.
1.35 jmc 1690: .El
1.38 xsa 1691: .Pp
1692: By default, the
1693: .Ic update
1694: command does not create new directories; the
1695: .Fl d
1696: option must be used for that.
1.29 xsa 1697: .Pp
1698: For each file updated, a single letter prefix is given to
1699: specify the state of the file.
1700: The possible prefixes are as follows:
1.61 deraadt 1701: .Bl -tag -width Ds
1.29 xsa 1702: .It \&?
1703: The file is unknown to
1704: .Nm .
1705: .It A
1706: The file has been added with the
1707: .Ic add
1708: command, but has not been committed to the repository with the
1709: .Ic commit
1710: command.
1711: .It C
1712: A merge, with a more recent version of the file, has been done,
1713: but unresolved conflicts still remain.
1714: .It M
1715: The file has been locally modified; if a more recent version
1716: is available, the merge has been done without conflict.
1717: .It P
1718: The same as
1719: .Sq U ,
1720: but, in client-server mode, only differences are sent to save network
1721: resources.
1722: .It R
1723: The file has been removed with the
1724: .Ic remove
1725: command, but has not been committed to the repository with the
1726: .Ic commit
1727: command.
1728: .It U
1729: The file is up to date.
1730: .El
1.13 jmc 1731: .Pp
1732: Aliases:
1733: .Ic up ,
1734: .Ic upd .
1.91 jmc 1735: .Ss version
1.3 jfb 1736: Causes
1737: .Nm
1738: to print its version information.
1.14 jfb 1739: If this command is issued within a local copy of a remote repository or
1740: if either the
1741: .Ev CVSROOT
1742: environment variable or the
1743: .Fl d
1744: flag specify a remote repository,
1.3 jfb 1745: .Nm
1746: will also connect to the server and ask it to print its version information.
1.13 jmc 1747: .Pp
1748: Aliases:
1749: .Ic ve ,
1750: .Ic ver .
1.91 jmc 1751: .Ss watch
1.32 xsa 1752: The
1753: .Ic watch
1754: command switches a file from normal mode to
1755: pseudo-lock mode as well as handling the notifications associated
1756: with it.
1757: Pseudo-lock mode means knowing who is editing a file:
1758: for that,
1759: .Nm
1760: extracts the file in read-only mode.
1761: Users must use the
1762: .Ic edit
1763: command to get the editing rights on the file.
1764: .Pp
1765: One of the following arguments to the
1766: .Ic watch
1767: command is mandatory: on, off, add, or remove.
1768: .Ar on
1769: switches the file into pseudo-lock mode;
1770: .Ar off
1771: switches it back to normal mode;
1772: .Ar add
1773: adds notifications for specific actions on the file;
1774: .Ar remove
1775: removes those notifications.
1776: .Pp
1777: The notifications are permanent.
1778: They remain in place until the
1779: .Ic watch remove
1780: command is issued while the temporary notifications are
1781: made available with the
1782: .Ic edit
1783: command.
1.91 jmc 1784: .Bd -literal -offset indent
1.107 sobrado 1785: usage: cvs watch on | off | add | remove [-lR] [-a action]
1.91 jmc 1786: [file ...]
1787: .Ed
1.32 xsa 1788: .Pp
1789: The
1.35 jmc 1790: .Ic watch
1791: command takes the following options:
1792: .Bl -tag -width Ds -offset 3n
1793: .It Fl a Ar action
1794: Specify the permanent notification wanted for
1.32 xsa 1795: .Ar add | remove :
1796: .Pp
1.61 deraadt 1797: .Bl -tag -width Ds -compact
1.32 xsa 1798: .It Cm commit
1.35 jmc 1799: Another user has committed changes to the file.
1.32 xsa 1800: .It Cm edit
1.35 jmc 1801: Another user is editing the file.
1.32 xsa 1802: .It Cm unedit
1.35 jmc 1803: Another user has finished editing the file.
1.32 xsa 1804: .It Cm all
1805: All of the above.
1806: .It Cm none
1807: No notification.
1808: .El
1809: .Pp
1.35 jmc 1810: If no specification is requested using the
1.32 xsa 1811: .Ar add
1812: or
1813: .Ar remove
1814: arguments, it implies the
1815: .Fl a Ar all
1816: option.
1.35 jmc 1817: .It Fl l
1818: Limit the scope of the search to the local directory
1819: only and disable recursive behaviour.
1820: .It Fl R
1821: Enable recursive behaviour.
1822: This is the default.
1823: .El
1.91 jmc 1824: .Ss watchers
1.32 xsa 1825: The
1826: .Ic watchers
1827: command lists the users who asked for notifications as well as the
1828: notifications details.
1829: The possible notifications are as follows:
1.61 deraadt 1830: .Bl -tag -width Ds
1.32 xsa 1831: .It Cm commit
1832: Permanent watch of a commit of a new version of a file.
1833: .It Cm edit
1834: Permanent watch of the start of file edition.
1835: .It Cm tcommit
1836: Temporary watch of a commit of new version of a file.
1837: .It Cm tedit
1838: Temporary watch of the start of file edition.
1839: .It Cm tunedit
1840: Temporary watch of the end of file edition.
1841: .It Cm unedit
1842: Permanent watch of the end of file edition.
1843: .El
1844: .Pp
1845: The temporary watches are set using the
1846: .Ic edit
1847: command, until the
1848: .Ic commit
1849: or
1850: .Ic unedit
1.35 jmc 1851: command is issued on a file.
1.91 jmc 1852: .Bd -literal -offset indent
1.107 sobrado 1853: usage: cvs watchers [-lR] [file ...]
1.91 jmc 1854: .Ed
1.35 jmc 1855: .Pp
1856: The
1857: .Ic watchers
1858: command takes the following options:
1859: .Bl -tag -width Ds -offset 3n
1860: .It Fl l
1861: Limit the scope of the search to the local directory
1862: only and disable recursive behaviour.
1863: .It Fl R
1864: Enable recursive behaviour.
1865: This is the default.
1.1 jfb 1866: .El
1867: .Sh ENVIRONMENT
1.61 deraadt 1868: .Bl -tag -width Ds
1.8 jmc 1869: .It Ev CVS_CLIENT_LOG
1870: This variable enables logging of all communications between the client and
1871: server when running in non-local mode.
1872: If set, this environment variable must contain a base path from which two
1873: paths will be generated by appending ".in" to the value for the server's
1874: input and ".out" for the server's output.
1.64 joris 1875: .Pp
1.65 joris 1876: The path can contain the following substitutes:
1877: .Pp
1878: .Bl -tag -width Ds -offset indent -compact
1.64 joris 1879: .It %c
1.65 joris 1880: the command being run
1.64 joris 1881: .It %d
1.65 joris 1882: the date
1883: .It %p
1884: the process ID
1.64 joris 1885: .It %u
1.65 joris 1886: the username of the person running it
1.64 joris 1887: .El
1888: .Pp
1889: The substitutes are only supported by OpenCVS.
1.1 jfb 1890: .It Ev CVS_RSH
1891: Name of the program to use when connecting to the server through a remote
1892: shell.
1893: The default is to use the
1894: .Xr ssh 1
1895: program.
1896: .It Ev CVS_SERVER
1897: If set, gives the name of the program to invoke as a
1898: .Nm
1899: server when using remote shell.
1900: The default is to use `cvs'.
1901: .It Ev CVSEDITOR
1902: Name of the editor to use when editing commit messages.
1.8 jmc 1903: Checked before
1904: .Ev EDITOR
1905: and
1906: .Ev VISUAL .
1.70 xsa 1907: .It Ev CVSREAD
1908: If set,
1909: .Nm
1910: extracts files in read-only mode.
1.101 xsa 1911: .It Ev CVSREADONLYFS
1912: Permit checkout from a read-only repository.
1.109 xsa 1913: Implies
1914: .Fl l .
1.101 xsa 1915: See also
1916: .Fl R ,
1917: above.
1.8 jmc 1918: .It Ev CVSROOT
1919: When set, this variable should contain the string pointing to the root
1920: directory of the CVS repository.
1921: The contents of this variable are ignored when the
1922: .Fl d
1923: option is given or if `Root' files exist in the checked-out copy.
1.1 jfb 1924: .It Ev EDITOR
1.9 jmc 1925: Name of the editor to use when editing commit messages.
1926: This is traditionally a line-oriented editor,
1927: such as
1928: .Xr ex 1 .
1.74 xsa 1929: .It Ev HOME
1930: Directory where the
1931: .Pa .cvsignore
1932: and
1933: .Pa .cvsrc
1934: files are searched for.
1.77 xsa 1935: .It Ev TMPDIR
1.79 xsa 1936: When set, this variable specifies the directory where temporary files
1.77 xsa 1937: are to be created.
1938: The default is set to
1939: .Pa /tmp .
1.1 jfb 1940: .It Ev VISUAL
1.9 jmc 1941: Name of the editor to use when editing commit messages.
1942: This is traditionally a screen-oriented editor,
1943: such as
1944: .Xr vi 1 .
1.8 jmc 1945: .El
1.1 jfb 1946: .Sh SEE ALSO
1947: .Xr diff 1 ,
1.15 jmc 1948: .Xr gzip 1 ,
1.1 jfb 1949: .Xr patch 1 ,
1.8 jmc 1950: .Xr rcs 1 ,
1.106 jmc 1951: .Xr cvs 5 ,
1.62 xsa 1952: .Xr cvsintro 7
1.110 xsa 1953: .Sh STANDARDS
1954: The flag
1955: .Op Fl x
1956: has no effect and is provided
1957: for compatibility only.
1.8 jmc 1958: .Sh HISTORY
1959: The OpenCVS project is a BSD-licensed rewrite of the original
1960: Concurrent Versioning System written by Jean-Francois Brousseau.
1961: The original CVS code was written in large parts by Dick Grune,
1962: Brian Berliner and Jeff Polk.
1963: .Sh AUTHORS
1964: .An Jean-Francois Brousseau
1965: .An Vincent Labrecque
1966: .An Joris Vink
1.43 jfb 1967: .An Xavier Santolaria
1.2 jfb 1968: .Sh CAVEATS
1969: This CVS implementation does not fully conform to the GNU CVS version.
1.3 jfb 1970: In some cases, this was done explicitly because GNU CVS has inconsistencies
1.2 jfb 1971: or ambiguous behaviour.
1.3 jfb 1972: Some things have also been left out or modified to enhance the overall
1973: security of the system.
1974: .Pp
1975: Among other things, support for the pserver connection mechanism has been
1976: dropped because of security issues with the authentication mechanism.