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