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