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