Annotation of src/usr.bin/cvs/cvs.1, Revision 1.102
1.102 ! xsa 1: .\" $OpenBSD: cvs.1,v 1.101 2006/12/11 07:59:18 xsa Exp $
1.1 jfb 2: .\"
3: .\" Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
1.94 xsa 4: .\" Copyright (c) 2004-2006 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.101 xsa 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
71: .Xr cvsrc 5
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
228: Usage: cvs add [-k mode] [-m msg] file ...
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
251: Usage: cvs admin [-Iq] [-b branch] [-k mode] [-m rev:msg]
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
351: Usage: cvs annotate [flR] [-D date | -r rev] [file ...]
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
392: Usage: cvs checkout [-AcflNnPpRs] [-d dir] [-j rev] [-k mode]
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
470: Usage: cvs commit [-flnR] [-F logfile | -m msg] [-r rev] [file ...]
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
510: Usage: cvs diff [-cilNnpRu]
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
594: Usage: cvs edit [-lR] [-a action] [file ...]
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
644: Usage: cvs editors [-lR] [file ...]
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
673: Usage: cvs export [-flNnR] [-d dir] [-k mode]
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
748: Usage: cvs history [-aceloTw] [-b str] [-D date] [-f file]
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).
800: .It Fl t Ar tag
801: Report since tag record placed in the
1.50 xsa 802: .Pa CVSROOT/history
1.49 xsa 803: file by any user.
804: .It Fl T
805: Report on all tags.
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
848: Display records with time synchronized with the
849: .Ar timezone
850: passed as argument.
851: .El
852: .Pp
853: All records have the following five first columns:
854: .Pp
855: .Bl -dash -compact
856: .It
857: The record type (the
858: .Fl x
859: option).
860: .It
861: The date of the action.
862: .It
863: The time of the action.
864: .It
865: The time zone.
866: .It
867: The user who made the action.
868: .El
869: .Pp
1.51 xsa 870: The other columns vary depending on the command issued:
871: .Pp
872: For records coming from the
873: .Ic rtag
874: command, the additional columns are as follows:
875: .Bd -literal -offset indent
876: <module> [<tag>:<argument>] {<working directory>}
877: .Ed
878: .Pp
879: For records coming from the
880: .Ic checkout
881: and
882: .Ic export
883: commands, the additional columns are as follows:
884: .Bd -literal -offset indent
885: <request> <repository> =<module>= <working directory>
886: .Ed
887: .Pp
888: For records coming from the
889: .Ic release
890: command, the additional columns are as follows:
891: .Bd -literal -offset indent
892: =<module>= <working directory>
893: .Ed
894: .Pp
895: For records coming from the
896: .Ic commit
897: and
898: .Ic update
899: commands, the additional columns are as follows:
900: .Bd -literal -offset indent
901: <version> <file> <module> == <working directory>
902: .Ed
1.13 jmc 903: .Pp
904: Aliases:
905: .Ic hi ,
906: .Ic his .
1.91 jmc 907: .Ss import
1.13 jmc 908: Import sources into CVS using vendor branches.
1.22 jmc 909: .Pp
910: At least three arguments are required:
1.72 xsa 911: .Ar module
1.22 jmc 912: specifies the location of the sources to be imported;
913: .Ar vendortag
914: is a tag for the entire branch;
915: .Ar releasetag
916: is used to identify the files you created with
1.35 jmc 917: .Ic cvs import .
1.91 jmc 918: .Bd -literal -offset indent
919: Usage: cvs import [-d] [-b branch] [-I ign] [-k mode] [-m msg]
920: [-W spec] module vendortag releasetag
921: .Ed
1.35 jmc 922: .Pp
923: The
924: .Ic import
925: command takes the following options:
926: .Bl -tag -width Ds -offset 3n
927: .It Fl b Ar branch
928: Specify the first-level branch number.
1.78 xsa 929: .It Fl d
930: Use the file's last modification time as the timestamp for the
931: initial revisions.
1.72 xsa 932: .It Fl I Ar ign
933: Ignore files specified by
934: .Ar ign .
935: This option can be used several times on the command line.
936: To see all files, use the
937: .Fl I Ar !\&
938: specification.
939: .It Fl k Ar mode
940: Specify the keyword substitution mode (is sticky).
1.35 jmc 941: .It Fl m Ar msg
942: Specify the log message to send.
1.72 xsa 943: .It Fl W Ar spec
944: Wrappers specification line.
1.35 jmc 945: .El
1.13 jmc 946: .Pp
947: Aliases:
948: .Ic im ,
949: .Ic imp .
1.91 jmc 950: .Ss init
1.13 jmc 951: Create a CVS repository if it doesn't exist.
1.91 jmc 952: .Ss kserver
1.13 jmc 953: Start a Kerberos authentication server.
1.91 jmc 954: .Ss log
1.52 xsa 955: The
956: .Ic log
957: command displays information on a
958: .Ar file
959: such as its different revisions, description, different tags,
960: as well as the comments, dates, and authors of these revisions.
961: By default, the
962: .Ic log
963: command displays all the available information; the options are only
964: used to restrict the displayed information.
1.91 jmc 965: .Bd -literal -offset indent
966: Usage: cvs log [-bhlNRt] [-d dates] [-r revs] [-s state]
967: [-w users] [file ...]
968: .Ed
1.52 xsa 969: .Pp
970: The
971: .Ic log
972: command takes the following options:
973: .Bl -tag -width Ds -offset 3n
974: .It Fl b
975: List revisions of the default branch only.
976: .It Fl d Ar dates
977: Specify revisions with dates matching the specification.
978: The specification might be as follows:
1.61 deraadt 979: .Bl -tag -width Ds
1.52 xsa 980: .It D1>D2 or D2>D1
981: Select all revisions between
982: .Ar \&D1
983: and
984: .Ar D2 .
985: .It <D or D>
986: Select all revisions before
987: .Ar D .
988: .It >D or D<
989: Select all revisions after
990: .Ar D .
991: .It D
992: Select the latest revision before or equal to
993: .Ar D .
994: .El
995: .Pp
996: The
997: .Sq \*(Gt
998: and
999: .Sq \*(Lt
1000: characters can be followed by the
1001: .Sq =
1002: character to imply an inclusive specification.
1003: Several specifications can be used by separating them with the
1004: .Sq \&;
1005: character.
1006: .It Fl h
1007: Print header only.
1008: .It Fl l
1009: Limit the scope of the search to the local directory only.
1010: .It Fl N
1011: Do not list tags.
1012: .It Fl R
1013: Print name of RCS file only.
1014: .It Fl r Ar revs
1015: Specify revision(s) to list:
1.61 deraadt 1016: .Bl -tag -width Ds
1.52 xsa 1017: .It REV1,REV2,...,
1018: A list of revisions is specified by separating names or numbers
1019: of revisions by the
1020: .Sq \&,
1021: character.
1022: .It REV1:REV2
1023: List all revisions between
1024: .Ar REV1
1025: and
1026: .Ar REV2
1027: (they must be on the same branch).
1028: .It :REV
1029: List all revisions since the beginning of the branch until
1030: .Ar REV
1031: included.
1032: .It REV:
1033: List all revisions of the branch beginning with
1034: .Ar REV .
1035: .It BRANCH
1036: List all revisions of a branch.
1037: .It BRANCH.
1038: List the latest revision of the branch
1039: .Ar BRANCH .
1040: .It BRANCH1:BRANCH2
1041: List all revisions of branches between
1042: .Ar BRANCH1
1043: and
1044: .Ar BRANCH2 .
1045: .El
1046: .Pp
1047: Without argument, the
1048: .Fl r
1049: option means the latest revision of the default branch.
1050: .It Fl s Ar state
1051: List revisions of the specified
1052: .Ar state
1053: only.
1054: Several states can be listed by separating them with the
1055: .Sq \&,
1056: character.
1057: .It Fl t
1058: Print header and description only.
1059: .It Fl w Ar users
1060: Do not list revisions made by specified
1061: .Ar users .
1062: Usernames should be separated by the
1063: .Sq \&,
1064: character.
1065: .El
1.13 jmc 1066: .Pp
1067: Aliases:
1068: .Ic lo .
1.91 jmc 1069: .Ss rdiff
1.55 xsa 1070: The
1071: .Ic rdiff
1072: command lists differences between two revisions in a
1.13 jmc 1073: .Xr patch 1
1.55 xsa 1074: compatible format.
1075: This command does not need a local checkout of the repository
1076: to work.
1.91 jmc 1077: .Bd -literal -offset indent
1078: Usage: cvs rdiff [-flR] [-c | -u] [-s | -t] [-V ver]
1079: -D date | -r rev [-D date2 | -r rev2]
1080: module ...
1081: .Ed
1.55 xsa 1082: .Pp
1083: The
1084: .Ic rdiff
1085: command takes the following options:
1086: .Bl -tag -width Ds -offset 3n
1087: .It Fl c
1088: Produces a diff with three lines of context.
1089: See
1090: .Xr diff 1
1091: for more information.
1092: This is the default.
1093: .It Xo Fl D Ar date
1094: .Op Fl D Ar date2
1095: .Xc
1096: Differences between the revision at
1097: .Ar date
1098: and the working copy or
1099: .Ar date
1100: and
1101: .Ar date2
1102: (if specified).
1103: .It Fl f
1104: Force the use of the head revision if the specified
1105: date or revision is not found.
1106: .It Fl l
1107: Limit the scope of the search to the local directory
1108: only and disable recursive behaviour.
1109: .It Fl R
1110: Enable recursive behaviour.
1111: This is the default.
1112: .It Xo Fl r Ar rev
1113: .Op Fl r Ar rev2
1114: .Xc
1115: Differences between revision
1116: .Ar rev
1117: and the working copy or
1118: .Ar rev
1119: and
1120: .Ar rev2
1121: (if specified).
1122: .It Fl s
1123: Create a summary change instead of a whole patch.
1124: .It Fl t
1125: Lists differences between the last two revisions of each file.
1126: .It Fl u
1127: Produces a diff in unidiff format.
1128: .It Fl V Ar ver
1129: Use the RCS version
1130: .Ar ver
1131: for keyword substitution.
1132: .El
1133: .Pp
1134: Aliases:
1135: .Ic pa ,
1136: .Ic patch .
1.91 jmc 1137: .Ss release
1.39 xsa 1138: The
1139: .Ic release
1140: command indicates to
1141: .Nm
1142: that the working copy of a module is no longer in use and checks
1143: that non archived modifications in the base repository do exist.
1144: This command is not mandatory.
1145: Local directories could always be removed without using it, but
1146: in this case the handling of history information will no longer be
1147: correct (see the
1148: .Ic history
1149: command).
1.91 jmc 1150: .Bd -literal -offset indent
1151: Usage: cvs release [-d] dir ...
1152: .Ed
1.39 xsa 1153: .Pp
1154: The
1155: .Ic release
1156: command takes the following options:
1157: .Bl -tag -width Ds -offset 3n
1158: .It Fl d Ar dir
1159: Remove the directory
1160: .Ar dir .
1161: Be aware that this option silently removes any directories that have
1162: been added to the local working copy without using the
1163: .Ic add
1164: command.
1165: .El
1166: .Pp
1167: For each file not being synchronized with the base repository,
1168: a single letter prefix is given to specify the state of the file.
1169: The possible prefixes are as follows:
1.61 deraadt 1170: .Bl -tag -width Ds
1.39 xsa 1171: .It \&?
1172: The file is unknown to
1173: .Nm
1174: and is not in the list of files to ignore.
1175: Any new directories which have not been added with the
1176: .Ic add
1177: command are silently ignored as well as their content.
1178: .It A
1179: The file has been added with the
1180: .Ic add
1181: command, but has not been committed to the repository with the
1182: .Ic commit
1183: command.
1184: .It M
1185: The file has been locally modified; a more recent version might
1186: exist in the base repository.
1187: .It R
1188: The file has been removed with the
1189: .Ic remove
1190: command, but has not been committed to the repository with the
1191: .Ic commit
1192: command.
1193: .It U
1194: A more recent version of the file does exist but it is not
1195: locally up to date.
1196: .El
1.40 xsa 1197: .Pp
1198: Aliases:
1199: .Ic re ,
1200: .Ic rel .
1.91 jmc 1201: .Ss remove
1.18 xsa 1202: The
1203: .Ic remove
1204: command is used to inform
1205: .Nm
1206: that
1207: .Ar file
1208: is scheduled to be removed from the repository.
1209: Files are not actually removed from the repository until the
1210: .Ic commit
1211: command has been run subsequently.
1.88 xsa 1212: .Pp
1213: There is no way to remove a directory with the
1214: .Ic remove
1215: command.
1216: .Nm
1217: will only remove a directory if it is empty and if the
1218: .Ic checkout
1219: or
1220: .Ic update
1221: commands are run with the
1222: .Fl P
1223: option.
1224: (Note that the
1225: .Ic export
1226: command always removes empty directories.)
1.91 jmc 1227: .Bd -literal -offset indent
1228: Usage: cvs remove [-flR] [file ...]
1229: .Ed
1.28 xsa 1230: .Pp
1231: The
1.35 jmc 1232: .Ic remove
1233: command takes the following options:
1234: .Bl -tag -width Ds -offset 3n
1235: .It Fl f
1236: Force local file removal.
1.28 xsa 1237: If this flag is not used, the file must be locally removed beforehand for
1238: the command to be valid.
1.35 jmc 1239: .It Fl l
1240: Limit the scope of the search to the local directory
1241: only and disable recursive behaviour.
1242: .It Fl R
1243: Enable recursive behaviour.
1244: This is the default.
1245: .El
1.18 xsa 1246: .Pp
1247: Aliases:
1.19 xsa 1248: .Ic rm ,
1249: .Ic delete .
1.91 jmc 1250: .Ss rlog
1.13 jmc 1251: Print out history information for a module.
1.91 jmc 1252: .Ss rtag
1.56 xsa 1253: The
1254: .Ic rtag
1255: command adds a symbolic tag to one or more modules.
1256: It is often used to create a new branch using the
1257: .Fl b
1258: option.
1.91 jmc 1259: .Bd -literal -offset indent
1260: Usage: cvs rtag [-abdFflnR] [-D date | -r rev]
1261: symbolic_tag module ...
1262: .Ed
1.56 xsa 1263: .Pp
1264: The
1265: .Ic rtag
1266: command takes the following options:
1267: .Bl -tag -width Ds -offset 3n
1268: .It Fl a
1269: Clear tag from files already removed with the
1270: .Ic remove
1271: command.
1272: .It Fl b
1273: Create a branch.
1274: .It Fl D Ar date
1275: Tag the most recent revision before
1276: .Ar date .
1277: .It Fl d
1278: Delete tag.
1279: .It Fl F
1280: Move tag if it already exists.
1281: If this option is not used and a tag is used a second time,
1282: .Nm
1283: will not execute the action.
1284: .It Fl f
1285: Force the use of the head revision if the specified
1286: revision or date is not found.
1287: .It Fl l
1288: Limit the scope of the search to the local directory
1289: only and disable recursive behaviour.
1290: .It Fl n
1291: Do not execute programs listed in the
1292: .Pa CVSROOT/modules
1293: file.
1294: .It Fl R
1295: Enable recursive behaviour.
1296: This is the default.
1297: .It Fl r Ar rev
1298: Tag at revision
1299: .Ar rev .
1300: .El
1301: .Pp
1302: Aliases:
1303: .Ic rt ,
1304: .Ic rfreeze .
1.91 jmc 1305: .Ss server
1.13 jmc 1306: Server mode.
1.91 jmc 1307: .Ss status
1.25 xsa 1308: The
1309: .Ic status
1310: command is used to display the state of checked out files.
1.91 jmc 1311: .Bd -literal -offset indent
1312: Usage: cvs status [-lRv] [file ...]
1313: .Ed
1.25 xsa 1314: .Pp
1315: The
1.35 jmc 1316: .Ic status
1317: command takes the following options:
1318: .Bl -tag -width Ds -offset 3n
1319: .It Fl l
1320: Limit the scope of the search to the local directory
1321: only and disable recursive behaviour.
1322: .It Fl R
1323: Enable recursive behaviour.
1324: This is the default.
1325: .It Fl v
1326: Display symbolic tags for
1327: .Ar file .
1.25 xsa 1328: .Pp
1.35 jmc 1329: The state may be one of the following:
1.61 deraadt 1330: .Bl -tag -width Ds
1.25 xsa 1331: .It Cm Locally Added
1332: The file has been added with the
1333: .Ic add
1334: command, but has not been committed to the repository with the
1335: .Ic commit
1336: command.
1337: .It Cm Locally Modified
1.35 jmc 1338: The file is up to date, but has been locally modified.
1.25 xsa 1339: .It Cm Locally Removed
1340: The file has been removed with the
1341: .Ic remove
1342: command, but has not been committed to the repository with the
1343: .Ic commit
1344: command.
1345: .It Cm Needs Checkout
1346: The file has not been modified; a new version is available.
1347: .It Cm Needs Merge
1348: The file has been modified and a newer version is available.
1349: .It Cm Needs Patch
1350: Same as
1351: .Ic Needs Checkout
1352: but, in client-server mode, only the differences are sent to save
1353: network resources.
1354: .It Cm Unresolved Conflict
1355: A merge has been done, but unresolved conflicts still remain.
1356: .It Cm Up-to-date
1357: The file is up to date.
1358: .El
1.35 jmc 1359: .El
1.13 jmc 1360: .Pp
1361: Aliases:
1362: .Ic st ,
1363: .Ic stat .
1.91 jmc 1364: .Ss tag
1.57 xsa 1365: The
1366: .Ic tag
1367: command adds a symbolic tag to a checked out version of one or more files.
1.91 jmc 1368: .Bd -literal -offset indent
1369: Usage: cvs tag [-bcdFflR] [-D date | -r rev] [symbolic_tag]
1370: [file ...]
1371: .Ed
1.21 jmc 1372: .Pp
1373: The
1.35 jmc 1374: .Ic tag
1375: command takes the following options:
1376: .Bl -tag -width Ds -offset 3n
1377: .It Fl b
1.57 xsa 1378: Create a branch.
1379: .It Fl c
1380: Check that working files are not modified.
1381: .It Fl D Ar date
1382: Tag the most recent revision before
1383: .Ar date .
1.35 jmc 1384: .It Fl d
1385: Delete tag.
1.57 xsa 1386: .It Fl F
1387: Move tag if it already exists.
1388: If this option is not used and a tag is used a second time,
1389: .Nm
1390: will not execute the action.
1391: .It Fl f
1392: Force the use of the head revision if the specified
1393: revision or date is not found.
1.35 jmc 1394: .It Fl l
1395: Limit the scope of the search to the local directory
1396: only and disable recursive behaviour.
1397: .It Fl R
1398: Enable recursive behaviour.
1399: This is the default.
1.57 xsa 1400: .It Fl r Ar rev
1401: Tag at revision
1402: .Ar rev .
1.35 jmc 1403: .El
1.13 jmc 1404: .Pp
1405: Aliases:
1406: .Ic ta ,
1407: .Ic freeze .
1.91 jmc 1408: .Ss unedit
1.30 xsa 1409: The
1410: .Ic unedit
1411: command is used to give up an edition on a file and thus cancel
1412: the wanted temporary notifications.
1413: If the file has been modified since the
1.13 jmc 1414: .Ic edit
1.30 xsa 1415: command has been issued,
1416: .Nm
1417: will ask if you want to go back to the previous version, and lose the
1418: modifications done on the file, or stay in edition mode on it.
1.91 jmc 1419: .Bd -literal -offset indent
1420: Usage: cvs unedit [-lR] [file ...]
1421: .Ed
1.30 xsa 1422: .Pp
1423: The
1.35 jmc 1424: .Ic unedit
1425: command takes the following options:
1426: .Bl -tag -width Ds -offset 3n
1427: .It Fl l
1428: Limit the scope of the search to the local directory
1429: only and disable recursive behaviour.
1430: .It Fl R
1431: Enable recursive behaviour.
1432: This is the default.
1433: .El
1.91 jmc 1434: .Ss update
1.3 jfb 1435: The
1.11 jmc 1436: .Ic update
1.17 david 1437: command is used to merge any of the changes that have occurred on the remote
1.3 jfb 1438: repository into the local one where the command was run.
1.91 jmc 1439: .Bd -literal -offset indent
1.102 ! xsa 1440: Usage: cvs update [-ACdflPpR] [-D date | -r rev] [-I ign]
1.91 jmc 1441: [-j rev] [-k mode] [-W spec] [file ...]
1442: .Ed
1.3 jfb 1443: .Pp
1444: The
1.35 jmc 1445: .Ic update
1446: command takes the following options:
1447: .Bl -tag -width Ds -offset 3n
1448: .It Fl A
1.41 xsa 1449: Reset any sticky tags, dates, or keyword substitution modes that
1450: have been set on the tree.
1.102 ! xsa 1451: .It Fl C
! 1452: Overwrite locally modified files with clean repository copies.
1.38 xsa 1453: .It Fl D Ar date
1454: Update as of the latest revision no later than
1455: .Ar date
1456: (is sticky).
1457: .It Fl d
1458: Create any new directories.
1459: Without this option,
1460: .Nm
1461: does not create any new files sitting in these new directories
1462: added in the base repository since the last update of the working
1463: copy, or since the last update with the
1464: .Fl d
1465: option.
1466: .It Fl f
1467: Force the use of the head revision if the specified
1468: tag or date is not found.
1469: .It Fl I Ar ign
1470: Ignore files specified by
1471: .Ar ign .
1472: This option can be used several times on the command line.
1473: To see all files, use the
1474: .Fl I Ar !\&
1475: specification.
1476: .It Fl j Ar rev
1477: Merge in changes made between current revision and
1478: .Ar rev .
1479: If two
1480: .Fl j
1481: options are specified, only merge the differences between the two
1482: revisions of the branch.
1483: This allows successive merges without having to resolve
1484: already resolved conflicts again.
1485: .It Fl k Ar mode
1486: Specify the keyword substitution mode (is sticky).
1.35 jmc 1487: .It Fl l
1488: Limit the scope of the search to the local directory
1489: only and disable recursive behaviour.
1490: .It Fl P
1491: Prune any directories that have become empty as a result of the update.
1.38 xsa 1492: .It Fl p
1493: Send the result of the update to standard output (avoids stickiness).
1.35 jmc 1494: .It Fl R
1495: Enable recursive behaviour.
1496: This is the default.
1.38 xsa 1497: .It Fl r Ar rev
1498: Update from a particular revision or branch (is sticky).
1499: .It Fl W Ar spec
1500: Wrappers specification line.
1.35 jmc 1501: .El
1.38 xsa 1502: .Pp
1503: By default, the
1504: .Ic update
1505: command does not create new directories; the
1506: .Fl d
1507: option must be used for that.
1.29 xsa 1508: .Pp
1509: For each file updated, a single letter prefix is given to
1510: specify the state of the file.
1511: The possible prefixes are as follows:
1.61 deraadt 1512: .Bl -tag -width Ds
1.29 xsa 1513: .It \&?
1514: The file is unknown to
1515: .Nm .
1516: .It A
1517: The file has been added with the
1518: .Ic add
1519: command, but has not been committed to the repository with the
1520: .Ic commit
1521: command.
1522: .It C
1523: A merge, with a more recent version of the file, has been done,
1524: but unresolved conflicts still remain.
1525: .It M
1526: The file has been locally modified; if a more recent version
1527: is available, the merge has been done without conflict.
1528: .It P
1529: The same as
1530: .Sq U ,
1531: but, in client-server mode, only differences are sent to save network
1532: resources.
1533: .It R
1534: The file has been removed with the
1535: .Ic remove
1536: command, but has not been committed to the repository with the
1537: .Ic commit
1538: command.
1539: .It U
1540: The file is up to date.
1541: .El
1.13 jmc 1542: .Pp
1543: Aliases:
1544: .Ic up ,
1545: .Ic upd .
1.91 jmc 1546: .Ss version
1.3 jfb 1547: Causes
1548: .Nm
1549: to print its version information.
1.14 jfb 1550: If this command is issued within a local copy of a remote repository or
1551: if either the
1552: .Ev CVSROOT
1553: environment variable or the
1554: .Fl d
1555: flag specify a remote repository,
1.3 jfb 1556: .Nm
1557: will also connect to the server and ask it to print its version information.
1.13 jmc 1558: .Pp
1559: Aliases:
1560: .Ic ve ,
1561: .Ic ver .
1.91 jmc 1562: .Ss watch
1.32 xsa 1563: The
1564: .Ic watch
1565: command switches a file from normal mode to
1566: pseudo-lock mode as well as handling the notifications associated
1567: with it.
1568: Pseudo-lock mode means knowing who is editing a file:
1569: for that,
1570: .Nm
1571: extracts the file in read-only mode.
1572: Users must use the
1573: .Ic edit
1574: command to get the editing rights on the file.
1575: .Pp
1576: One of the following arguments to the
1577: .Ic watch
1578: command is mandatory: on, off, add, or remove.
1579: .Ar on
1580: switches the file into pseudo-lock mode;
1581: .Ar off
1582: switches it back to normal mode;
1583: .Ar add
1584: adds notifications for specific actions on the file;
1585: .Ar remove
1586: removes those notifications.
1587: .Pp
1588: The notifications are permanent.
1589: They remain in place until the
1590: .Ic watch remove
1591: command is issued while the temporary notifications are
1592: made available with the
1593: .Ic edit
1594: command.
1.91 jmc 1595: .Bd -literal -offset indent
1596: Usage: cvs watch on | off | add | remove [-lR] [-a action]
1597: [file ...]
1598: .Ed
1.32 xsa 1599: .Pp
1600: The
1.35 jmc 1601: .Ic watch
1602: command takes the following options:
1603: .Bl -tag -width Ds -offset 3n
1604: .It Fl a Ar action
1605: Specify the permanent notification wanted for
1.32 xsa 1606: .Ar add | remove :
1607: .Pp
1.61 deraadt 1608: .Bl -tag -width Ds -compact
1.32 xsa 1609: .It Cm commit
1.35 jmc 1610: Another user has committed changes to the file.
1.32 xsa 1611: .It Cm edit
1.35 jmc 1612: Another user is editing the file.
1.32 xsa 1613: .It Cm unedit
1.35 jmc 1614: Another user has finished editing the file.
1.32 xsa 1615: .It Cm all
1616: All of the above.
1617: .It Cm none
1618: No notification.
1619: .El
1620: .Pp
1.35 jmc 1621: If no specification is requested using the
1.32 xsa 1622: .Ar add
1623: or
1624: .Ar remove
1625: arguments, it implies the
1626: .Fl a Ar all
1627: option.
1.35 jmc 1628: .It Fl l
1629: Limit the scope of the search to the local directory
1630: only and disable recursive behaviour.
1631: .It Fl R
1632: Enable recursive behaviour.
1633: This is the default.
1634: .El
1.91 jmc 1635: .Ss watchers
1.32 xsa 1636: The
1637: .Ic watchers
1638: command lists the users who asked for notifications as well as the
1639: notifications details.
1640: The possible notifications are as follows:
1.61 deraadt 1641: .Bl -tag -width Ds
1.32 xsa 1642: .It Cm commit
1643: Permanent watch of a commit of a new version of a file.
1644: .It Cm edit
1645: Permanent watch of the start of file edition.
1646: .It Cm tcommit
1647: Temporary watch of a commit of new version of a file.
1648: .It Cm tedit
1649: Temporary watch of the start of file edition.
1650: .It Cm tunedit
1651: Temporary watch of the end of file edition.
1652: .It Cm unedit
1653: Permanent watch of the end of file edition.
1654: .El
1655: .Pp
1656: The temporary watches are set using the
1657: .Ic edit
1658: command, until the
1659: .Ic commit
1660: or
1661: .Ic unedit
1.35 jmc 1662: command is issued on a file.
1.91 jmc 1663: .Bd -literal -offset indent
1664: Usage: cvs watchers [-lR] [file ...]
1665: .Ed
1.35 jmc 1666: .Pp
1667: The
1668: .Ic watchers
1669: command takes the following options:
1670: .Bl -tag -width Ds -offset 3n
1671: .It Fl l
1672: Limit the scope of the search to the local directory
1673: only and disable recursive behaviour.
1674: .It Fl R
1675: Enable recursive behaviour.
1676: This is the default.
1.1 jfb 1677: .El
1678: .Sh ENVIRONMENT
1.61 deraadt 1679: .Bl -tag -width Ds
1.8 jmc 1680: .It Ev CVS_CLIENT_LOG
1681: This variable enables logging of all communications between the client and
1682: server when running in non-local mode.
1683: If set, this environment variable must contain a base path from which two
1684: paths will be generated by appending ".in" to the value for the server's
1685: input and ".out" for the server's output.
1.64 joris 1686: .Pp
1.65 joris 1687: The path can contain the following substitutes:
1688: .Pp
1689: .Bl -tag -width Ds -offset indent -compact
1.64 joris 1690: .It %c
1.65 joris 1691: the command being run
1.64 joris 1692: .It %d
1.65 joris 1693: the date
1694: .It %p
1695: the process ID
1.64 joris 1696: .It %u
1.65 joris 1697: the username of the person running it
1.64 joris 1698: .El
1699: .Pp
1700: The substitutes are only supported by OpenCVS.
1.1 jfb 1701: .It Ev CVS_RSH
1702: Name of the program to use when connecting to the server through a remote
1703: shell.
1704: The default is to use the
1705: .Xr ssh 1
1706: program.
1707: .It Ev CVS_SERVER
1708: If set, gives the name of the program to invoke as a
1709: .Nm
1710: server when using remote shell.
1711: The default is to use `cvs'.
1712: .It Ev CVSEDITOR
1713: Name of the editor to use when editing commit messages.
1.8 jmc 1714: Checked before
1715: .Ev EDITOR
1716: and
1717: .Ev VISUAL .
1.70 xsa 1718: .It Ev CVSREAD
1719: If set,
1720: .Nm
1721: extracts files in read-only mode.
1.101 xsa 1722: .It Ev CVSREADONLYFS
1723: Permit checkout from a read-only repository.
1724: See also
1725: .Fl R ,
1726: above.
1.8 jmc 1727: .It Ev CVSROOT
1728: When set, this variable should contain the string pointing to the root
1729: directory of the CVS repository.
1730: The contents of this variable are ignored when the
1731: .Fl d
1732: option is given or if `Root' files exist in the checked-out copy.
1.1 jfb 1733: .It Ev EDITOR
1.9 jmc 1734: Name of the editor to use when editing commit messages.
1735: This is traditionally a line-oriented editor,
1736: such as
1737: .Xr ex 1 .
1.74 xsa 1738: .It Ev HOME
1739: Directory where the
1740: .Pa .cvsignore
1741: and
1742: .Pa .cvsrc
1743: files are searched for.
1.77 xsa 1744: .It Ev TMPDIR
1.79 xsa 1745: When set, this variable specifies the directory where temporary files
1.77 xsa 1746: are to be created.
1747: The default is set to
1748: .Pa /tmp .
1.1 jfb 1749: .It Ev VISUAL
1.9 jmc 1750: Name of the editor to use when editing commit messages.
1751: This is traditionally a screen-oriented editor,
1752: such as
1753: .Xr vi 1 .
1.8 jmc 1754: .El
1755: .Sh FILES
1756: .Bl -tag -width Ds
1.75 xsa 1757: .It Pa $HOME/.cvsignore
1758: File containing a list of files (or
1759: .Xr sh 1
1760: file name patterns) that should be ignored by
1.76 jmc 1761: .Nm
1.75 xsa 1762: during the
1763: .Ic import ,
1764: .Ic release ,
1765: and
1766: .Ic update
1767: commands.
1.8 jmc 1768: .It Pa $HOME/.cvsrc
1769: File containing a list of implicit options to pass to certain commands.
1770: This file is read on startup unless the
1771: .Fl f
1772: option is specified.
1773: .It Pa $CVSROOT/CVSROOT
1774: Directory containing repository administrative files.
1.86 xsa 1775: .It Pa $CVSROOT/CVSROOT/history
1776: File containing reports of
1777: .Ic checkout ,
1778: .Ic commit ,
1779: .Ic export ,
1780: .Ic release ,
1781: .Ic rtag ,
1782: and
1783: .Ic update
1784: commands that have been issued.
1785: By default, the
1786: .Ic init
1787: command creates the
1788: .Pa history
1789: file.
1790: To disable history logging, the
1791: .Pa history
1792: file should be removed manually.
1793: The
1794: .Ic history
1795: command shows these reports according to several criteria.
1.8 jmc 1796: .It Pa $CVSROOT/CVSROOT/loginfo
1797: File containing associations between modules and handlers for
1798: post-commit logging.
1.85 xsa 1799: .El
1800: .Pp
1801: Each directory that is managed by
1802: .Nm
1803: contains a
1804: .Pa CVS
1805: directory.
1806: This directory is used by various
1807: .Nm
1808: commands to record the status of files in the current working directory.
1809: These files should not be modified manually by the user but by the
1810: .Nm
1811: commands instead.
1812: Files that are always stored in every
1813: .Pa CVS
1814: directory are as follows:
1815: .Bl -tag -width Ds
1816: .It Pa CVS/Entries
1817: File containing a list of files managed by
1818: .Nm .
1819: .Pa Entries
1820: has one line per file or directory describing the state of it with
1821: regard to the source repository.
1822: These lines have the following format:
1823: .Pp
1824: .Dl /name/revision/timestamp/options/tag
1825: .Bl -tag -width Ds
1826: .It name
1827: Name of the file in the directory.
1828: .It revision
1829: Revision of the file in the working directory.
1830: The revision is equal to
1831: .Sq 0
1832: if the file has been added with the
1833: .Ic add
1.87 jmc 1834: command or preceded by the
1.85 xsa 1835: .Sq -
1836: character if the file has been removed with the
1837: .Ic remove
1838: command.
1839: .It timestamp
1840: Contains the timestamp of the file at the time
1841: .Nm
1842: created it.
1843: If the timestamp is different from the actual modification time of the file,
1844: it means that the file has been modified.
1845: .It options
1846: Contains the keyword substitution mode used for this file.
1847: .It tag
1848: Contains
1849: .Sq T
1850: followed by a tagname or
1851: .Sq D
1852: followed by a date.
1853: .El
1854: .Pp
1855: Entries corresponding to directories have the following format:
1856: .Pp
1857: .Dl D/name////
1858: .Pp
1859: The lines in the
1860: .Pa Entries
1861: file can be in any order.
1862: .It Pa CVS/Repository
1863: File containing the path to the corresponding directory in the
1864: source repository.
1865: .It Pa CVS/Root
1866: File containing the value of the
1867: .Ev CVSROOT
1868: variable at the time of checkout.
1869: This file is used by all
1870: .Nm
1871: commands instead of
1872: .Ev CVSROOT
1873: once
1874: .Nm
1875: has checked for its existence.
1876: .El
1877: .Pp
1878: Depending on the circumstances, other files may exist in the
1879: .Pa CVS
1880: directory:
1881: .Bl -tag -width Ds
1882: .It Pa CVS/Base
1883: If pseudo-lock mode is enabled in client-server mode,
1884: the
1885: .Pa Base
1886: directory contains a copy of the file on which the
1887: .Ic edit
1888: command has been issued.
1889: This allows the
1890: .Ic unedit
1891: command to operate even if the CVS server is unreachable.
1892: .It Pa CVS/Baserev
1893: File listing the revisions for each file contained in the
1894: .Pa Base
1895: directory under the following format:
1896: .Pp
1897: .Dl name/revision/
1.95 xsa 1898: .It Pa CVS/Baserev.tmp
1899: Temporary file used to write
1900: .Pa CVS/Baserev
1901: content then atomically renamed to
1902: .Pa Baserev .
1.85 xsa 1903: .It Pa CVS/Checkin.prog
1904: File containing the path to the command specified with the
1905: .Fl i
1906: option in the
1907: .Pa CVSROOT/modules
1908: file.
1.94 xsa 1909: .It Pa CVS/Entries.Backup
1910: Temporary file used to write
1911: .Pa CVS/Entries
1912: content then atomically renamed to
1913: .Pa Entries .
1.85 xsa 1914: .It Pa CVS/Entries.Static
1915: Tells
1916: .Nm
1917: to not add files to the directory unless the
1918: .Ic update
1919: command is issued with the
1920: .Fl d
1921: option.
1922: .It Pa CVS/Notify
1923: File containing the notifications that could not be sent to the
1924: CVS server but will be sent at the next successful connection.
1.94 xsa 1925: .It Pa CVS/Notify.tmp
1926: Temporary file used to write
1927: .Pa CVS/Notify
1928: content then atomically renamed to
1929: .Pa Notify .
1.85 xsa 1930: .It Pa CVS/Tag
1931: File containing the symbolic revision that was used at checkout.
1.90 xsa 1932: The first character of the line is a single letter indicating the
1933: type of tag:
1934: .Sq D ,
1935: .Sq N ,
1936: or
1.92 jmc 1937: .Sq T ,
1.90 xsa 1938: for date, non-branch tag, or branch tag, respectively.
1939: The rest of the line is the tag or date itself.
1940: The
1941: .Pa Tag
1942: file should not be removed manually:
1943: instead, use
1944: .Dq update -A .
1.94 xsa 1945: .It Pa CVS/Template
1946: File containing the template specified by the
1947: .Pa CVSROOT/rcsinfo
1948: file.
1949: It is only used in client-server mode.
1950: Locally,
1951: .Nm
1952: uses the
1953: .Pa rcsinfo
1954: file directly.
1.85 xsa 1955: .It Pa CVS/Update.prog
1956: File containing the path to the command specified with the
1957: .Fl u
1958: option in the
1959: .Pa CVSROOT/modules
1960: file.
1961: .It Pa CVS/<name>,t
1962: File containing the description of the file
1963: .Pa file
1964: that has been added with the
1965: .Ic add
1966: command.
1967: This description is used by
1968: .Nm
1969: when archiving this file with the
1970: .Ic commit
1971: command.
1.1 jfb 1972: .El
1973: .Sh SEE ALSO
1974: .Xr diff 1 ,
1.15 jmc 1975: .Xr gzip 1 ,
1.1 jfb 1976: .Xr patch 1 ,
1.8 jmc 1977: .Xr rcs 1 ,
1.73 xsa 1978: .Xr cvsignore 5 ,
1.16 jmc 1979: .Xr cvsrc 5 ,
1.80 xsa 1980: .Xr cvswrappers 5 ,
1.62 xsa 1981: .Xr cvsintro 7
1.8 jmc 1982: .Sh HISTORY
1983: The OpenCVS project is a BSD-licensed rewrite of the original
1984: Concurrent Versioning System written by Jean-Francois Brousseau.
1985: The original CVS code was written in large parts by Dick Grune,
1986: Brian Berliner and Jeff Polk.
1987: .Sh AUTHORS
1988: .An Jean-Francois Brousseau
1989: .An Vincent Labrecque
1990: .An Joris Vink
1.43 jfb 1991: .An Xavier Santolaria
1.2 jfb 1992: .Sh CAVEATS
1993: This CVS implementation does not fully conform to the GNU CVS version.
1.3 jfb 1994: In some cases, this was done explicitly because GNU CVS has inconsistencies
1.2 jfb 1995: or ambiguous behaviour.
1.3 jfb 1996: Some things have also been left out or modified to enhance the overall
1997: security of the system.
1998: .Pp
1999: Among other things, support for the pserver connection mechanism has been
2000: dropped because of security issues with the authentication mechanism.