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