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