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