Annotation of src/usr.bin/cvs/cvs.1, Revision 1.65
1.65 ! joris 1: .\" $OpenBSD: cvs.1,v 1.64 2005/05/23 20:26:13 joris 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
1.63 jfb 552: .Op Fl cilNnpRu
1.53 xsa 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.
1.63 jfb 601: .It Fl n
602: Produces a diff in the same format as that used by
603: .Xr rcsdiff 1 ,
604: with a count of changed lines on each insert or delete command.
1.53 xsa 605: .It Fl p
606: With unified and context diffs, show with each change the first
607: 40 characters of the last line before the context beginning with
608: a letter, an underscore or a dollar sign.
609: See
610: .Xr diff 1
611: for more information.
612: .It Fl R
613: Enable recursive behaviour.
614: This is the default.
615: .It Xo Fl r Ar rev1
616: .Op Fl r Ar rev2
617: .Xc
618: Differences between revision
619: .Ar rev1
620: and the working copy or
621: .Ar rev1
622: and
623: .Ar rev2
624: (if specified).
625: .It Fl u
626: Produces a unified diff with three lines of context.
627: See
628: .Xr diff 1
629: for more information.
630: .El
1.13 jmc 631: .Pp
632: Aliases:
633: .Ic di ,
634: .Ic dif .
1.30 xsa 635: .It Xo Ic edit Op Fl lR
636: .Op Fl a Ar action
637: .Op Ar file ...
638: .Xc
639: .Pp
640: The
641: .Ic edit
1.35 jmc 642: command is used to make a file that is being watched
643: (and therefore read-only)
1.30 xsa 644: readable and writable and to inform others that you are planning to edit it.
645: Notifications terminate when the
646: .Ic commit
647: command is issued.
648: Editing rights on the file can be given up using the
649: .Ic unedit
1.35 jmc 650: command, which terminates the temporary notifications.
1.30 xsa 651: .Pp
652: The
1.35 jmc 653: .Ic edit
654: command takes the following options:
655: .Bl -tag -width Ds -offset 3n
656: .It Fl a Ar action
657: Specify the temporary notification wanted:
658: .Pp
1.61 deraadt 659: .Bl -tag -width Ds -compact
1.30 xsa 660: .It Cm commit
1.35 jmc 661: Another user has committed changes to the file.
1.30 xsa 662: .It Cm edit
663: Another user has issued the
664: .Ic edit
1.35 jmc 665: command on the file.
1.30 xsa 666: .It Cm unedit
667: Another user has issued the
668: .Ic unedit
1.35 jmc 669: command on the file.
1.30 xsa 670: .It Cm all
671: All of the above.
672: .It Cm none
673: None of the above.
674: .El
675: .Pp
676: The
677: .Fl a
678: flag may appear more than once, or not at all.
679: If omitted, the action defaults to
1.31 jmc 680: .Cm all .
1.35 jmc 681: .It Fl l
682: Limit the scope of the search to the local directory
683: only and disable recursive behaviour.
684: .It Fl R
685: Enable recursive behaviour.
686: This is the default.
687: .El
1.33 xsa 688: .It Xo Ic editors
689: .Op Fl lR
1.34 xsa 690: .Op Ar file ...
1.33 xsa 691: .Xc
692: .Pp
693: The
694: .Ic editors
695: command lists the users with edition rights on a file.
696: For that, pseudo-lock mode must be enabled (see the
697: .Ic watch
698: command).
699: The e-mail address of the user editing the file, the timestamp
700: when the edition first started, the host from where the edition
701: has been requested and the path to the edited file are listed.
702: .Pp
703: The
1.35 jmc 704: .Ic editors
705: command takes the following options:
706: .Bl -tag -width Ds -offset 3n
707: .It Fl l
708: Limit the scope of the search to the local directory
709: only and disable recursive behaviour.
710: .It Fl R
711: Enable recursive behaviour.
712: This is the default.
713: .El
1.36 xsa 714: .It Xo Ic export
715: .Op Fl flNnR
716: .Op Fl d Ar dir
717: .Op Fl k Ar mode
718: .Fl D Ar date \*(Ba
719: .Fl r Ar rev
720: .Ar module ...
721: .Xc
722: .Pp
723: The
724: .Ic export
725: command extracts a copy of
726: .Ar module
727: without including the directories used for management by
728: .Nm .
729: This eases production of a software release.
730: A date or a revision must be specified for the command to be valid,
731: which ensures that later extractions can be reproduced with the same
732: options as the release.
733: .Pp
734: The checked out module's files will be placed in a directory
735: bearing the same name as the checked out module, by default.
736: .Pp
737: The
738: .Ic export
739: command takes the following options:
740: .Bl -tag -width Ds -offset 3n
741: .It Fl D Ar date
742: Export as of the latest revision no later than
743: .Ar date .
744: .It Fl d Ar dir
745: Export in directory
746: .Ar dir
747: instead of the directory bearing the same name as the
748: .Ar module .
749: .It Fl f
750: Force the use of the head revision if the specified
751: tag or date is not found.
752: This can be used in combination with
753: .Fl D
754: or
755: .Fl r
756: to ensure that the
757: .Ic export
758: command is valid.
759: .It Fl k Ar mode
760: Specify the keyword substitution mode: the
761: .Fl k Ar v
762: option is often used to avoid substitution of keywords during
763: a release cycle.
764: However, be aware that it does not handle an export containing
765: binary files correctly.
766: .It Fl l
767: Limit the scope of the search to the local directory
768: only and disable recursive behaviour.
769: .It Fl N
770: If used in conjunction with the
771: .Fl d
772: option, files are placed in local directory
773: .Ar module ,
774: located in directory
775: .Ar dir .
776: .It Fl n
777: Do not execute programs listed in the
778: .Pa CVSROOT/modules
779: file.
780: .It Fl R
781: Enable recursive behaviour.
782: This is the default.
783: .It Fl r Ar rev
784: Export from a particular symbolic or numerical revision.
785: .El
1.13 jmc 786: .Pp
787: Aliases:
788: .Ic ex ,
789: .Ic exp .
1.49 xsa 790: .It Xo Ic history
791: .Op Fl aceloTw
792: .Op Fl b Ar str
793: .Op Fl D Ar date
794: .Op Fl f Ar file
795: .Op Fl m Ar module
796: .Op Fl n Ar module
797: .Op Fl p Ar path
798: .Op Fl r Ar rev
799: .Op Fl t Ar tag
800: .Op Fl u Ar user
801: .Op Fl x Ar ACEFGMORTUW
802: .Op Fl z Ar tz
803: .Op Ar file ...
804: .Xc
805: .Pp
806: The
807: .Ic history
808: command is used to display the history of actions done in the
809: base repository.
810: This functionality is only available if the
1.50 xsa 811: .Pa CVSROOT/history
1.49 xsa 812: file has been created.
813: Only the
814: .Ic checkout ,
815: .Ic commit ,
816: .Ic export ,
817: .Ic release ,
818: .Ic rtag ,
819: and
820: .Ic update
821: commands are logged into this file.
822: .Pp
823: The
824: .Ic history
825: command takes the following options:
826: .Bl -tag -width Ds -offset 3n
827: .It Fl a
828: Display records for all users.
829: By default, only records from the user issuing the
830: .Ic history
831: command are displayed.
832: .It Fl b Ar str
833: Display everything back to a record containing the string
834: .Ar str
835: in either the module name, the file name, or the repository path.
836: .It Fl c
837: Display the archived files
838: .Pf ( Ic commit
839: command).
840: .It Fl D Ar date
841: Report no later than
842: .Ar date .
843: .It Fl e
844: Select all records (same as
845: .Fl x
846: with all types).
847: .It Fl f Ar file
848: Display records related to
849: .Ar file .
850: .It Fl l
851: Show last checkouts of modules with the
852: .Ic checkout
853: command.
854: .It Fl m Ar module
855: Look for the
856: .Ar module
857: (can be used several times).
858: .It Fl n Ar module
859: Search into the
860: .Ar module .
861: .It Fl o
862: Report on modules checked out by users.
863: .It Fl p Ar path
864: Display records from the base repository being in the directory
865: specified by the
866: .Ar path .
867: .It Fl r Ar rev
868: Report for a particular revision (checks in the RCS file).
869: .It Fl t Ar tag
870: Report since tag record placed in the
1.50 xsa 871: .Pa CVSROOT/history
1.49 xsa 872: file by any user.
873: .It Fl T
874: Report on all tags.
875: .It Fl u Ar user
876: Report for a specified
877: .Ar user .
878: Can be used several times to match many users.
879: .It Fl w
880: Check that records match the current working directory.
881: .It Fl x Ar ACEFGMORTUW
882: Extract by a specific record type specified by a single letter.
883: They can be used in combination.
884: The available types are as follows:
1.61 deraadt 885: .Bl -tag -width Ds
1.49 xsa 886: .It A
887: A file has been added with the
888: .Ic add
889: command.
890: .It C
891: A merge has been done, but unresolved conflicts still remain.
892: .It E
893: Export.
894: .It F
895: Release.
896: .It G
897: A merge has been done without conflict.
898: .It M
899: A file has been modified (using the
900: .Ic commit
901: command).
902: .It O
903: Checkout.
904: .It R
905: A file has been removed with the
906: .Ic remove
907: command.
908: .It T
909: Rtag.
910: .It U
911: Normal update.
912: .It W
913: The file has been deleted from the directory because it does not
914: exist anymore in the base repository.
915: .El
916: .It Fl z Ar tz
917: Display records with time synchronized with the
918: .Ar timezone
919: passed as argument.
920: .El
921: .Pp
922: All records have the following five first columns:
923: .Pp
924: .Bl -dash -compact
925: .It
926: The record type (the
927: .Fl x
928: option).
929: .It
930: The date of the action.
931: .It
932: The time of the action.
933: .It
934: The time zone.
935: .It
936: The user who made the action.
937: .El
938: .Pp
1.51 xsa 939: The other columns vary depending on the command issued:
940: .Pp
941: For records coming from the
942: .Ic rtag
943: command, the additional columns are as follows:
944: .Bd -literal -offset indent
945: <module> [<tag>:<argument>] {<working directory>}
946: .Ed
947: .Pp
948: For records coming from the
949: .Ic checkout
950: and
951: .Ic export
952: commands, the additional columns are as follows:
953: .Bd -literal -offset indent
954: <request> <repository> =<module>= <working directory>
955: .Ed
956: .Pp
957: For records coming from the
958: .Ic release
959: command, the additional columns are as follows:
960: .Bd -literal -offset indent
961: =<module>= <working directory>
962: .Ed
963: .Pp
964: For records coming from the
965: .Ic commit
966: and
967: .Ic update
968: commands, the additional columns are as follows:
969: .Bd -literal -offset indent
970: <version> <file> <module> == <working directory>
971: .Ed
1.13 jmc 972: .Pp
973: Aliases:
974: .Ic hi ,
975: .Ic his .
1.22 jmc 976: .It Xo Ic import
977: .Op Fl b Ar branch
978: .Op Fl m Ar msg
979: .Ar repository
980: .Ar vendortag
981: .Ar releasetag
982: .Xc
983: .Pp
1.13 jmc 984: Import sources into CVS using vendor branches.
1.22 jmc 985: .Pp
986: At least three arguments are required:
987: .Ar repository
988: specifies the location of the sources to be imported;
989: .Ar vendortag
990: is a tag for the entire branch;
991: .Ar releasetag
992: is used to identify the files you created with
1.35 jmc 993: .Ic cvs import .
994: .Pp
995: The
996: .Ic import
997: command takes the following options:
998: .Bl -tag -width Ds -offset 3n
999: .It Fl b Ar branch
1000: Specify the first-level branch number.
1001: .It Fl m Ar msg
1002: Specify the log message to send.
1003: .El
1.13 jmc 1004: .Pp
1005: Aliases:
1006: .Ic im ,
1007: .Ic imp .
1008: .It Ic init
1009: Create a CVS repository if it doesn't exist.
1010: .It Ic kserver
1011: Start a Kerberos authentication server.
1.52 xsa 1012: .It Xo Ic log
1013: .Op Fl bhlNRt
1014: .Op Fl d Ar dates
1015: .Op Fl r Ar revs
1016: .Op Fl s Ar state
1017: .Op Fl w Ar users
1018: .Op Ar file ...
1019: .Xc
1020: .Pp
1021: The
1022: .Ic log
1023: command displays information on a
1024: .Ar file
1025: such as its different revisions, description, different tags,
1026: as well as the comments, dates, and authors of these revisions.
1027: By default, the
1028: .Ic log
1029: command displays all the available information; the options are only
1030: used to restrict the displayed information.
1031: .Pp
1032: The
1033: .Ic log
1034: command takes the following options:
1035: .Bl -tag -width Ds -offset 3n
1036: .It Fl b
1037: List revisions of the default branch only.
1038: .It Fl d Ar dates
1039: Specify revisions with dates matching the specification.
1040: The specification might be as follows:
1.61 deraadt 1041: .Bl -tag -width Ds
1.52 xsa 1042: .It D1>D2 or D2>D1
1043: Select all revisions between
1044: .Ar \&D1
1045: and
1046: .Ar D2 .
1047: .It <D or D>
1048: Select all revisions before
1049: .Ar D .
1050: .It >D or D<
1051: Select all revisions after
1052: .Ar D .
1053: .It D
1054: Select the latest revision before or equal to
1055: .Ar D .
1056: .El
1057: .Pp
1058: The
1059: .Sq \*(Gt
1060: and
1061: .Sq \*(Lt
1062: characters can be followed by the
1063: .Sq =
1064: character to imply an inclusive specification.
1065: Several specifications can be used by separating them with the
1066: .Sq \&;
1067: character.
1068: .It Fl h
1069: Print header only.
1070: .It Fl l
1071: Limit the scope of the search to the local directory only.
1072: .It Fl N
1073: Do not list tags.
1074: .It Fl R
1075: Print name of RCS file only.
1076: .It Fl r Ar revs
1077: Specify revision(s) to list:
1.61 deraadt 1078: .Bl -tag -width Ds
1.52 xsa 1079: .It REV1,REV2,...,
1080: A list of revisions is specified by separating names or numbers
1081: of revisions by the
1082: .Sq \&,
1083: character.
1084: .It REV1:REV2
1085: List all revisions between
1086: .Ar REV1
1087: and
1088: .Ar REV2
1089: (they must be on the same branch).
1090: .It :REV
1091: List all revisions since the beginning of the branch until
1092: .Ar REV
1093: included.
1094: .It REV:
1095: List all revisions of the branch beginning with
1096: .Ar REV .
1097: .It BRANCH
1098: List all revisions of a branch.
1099: .It BRANCH.
1100: List the latest revision of the branch
1101: .Ar BRANCH .
1102: .It BRANCH1:BRANCH2
1103: List all revisions of branches between
1104: .Ar BRANCH1
1105: and
1106: .Ar BRANCH2 .
1107: .El
1108: .Pp
1109: Without argument, the
1110: .Fl r
1111: option means the latest revision of the default branch.
1112: .It Fl s Ar state
1113: List revisions of the specified
1114: .Ar state
1115: only.
1116: Several states can be listed by separating them with the
1117: .Sq \&,
1118: character.
1119: .It Fl t
1120: Print header and description only.
1121: .It Fl w Ar users
1122: Do not list revisions made by specified
1123: .Ar users .
1124: Usernames should be separated by the
1125: .Sq \&,
1126: character.
1127: .El
1.13 jmc 1128: .Pp
1129: Aliases:
1130: .Ic lo .
1131: .It Ic login
1.35 jmc 1132: Prompt for a password for an authenticating server.
1.13 jmc 1133: .It Ic logout
1.35 jmc 1134: Remove an entry in
1135: .Pa .cvspass
1136: for a remote repository.
1.55 xsa 1137: .It Xo Ic rdiff
1138: .Op Fl flR
1139: .Oo Fl c \*(Ba
1140: .Fl u Oc
1141: .Oo Fl s \*(Ba
1142: .Fl t Oc
1143: .Op Fl V Ar ver
1144: .Fl D Ar date \*(Ba
1145: .Fl r Ar rev
1146: .Oo Fl D Ar date2 \*(Ba
1147: .Fl r Ar rev2 Oc
1148: .Ar module ...
1149: .Xc
1150: .Pp
1151: The
1152: .Ic rdiff
1153: command lists differences between two revisions in a
1.13 jmc 1154: .Xr patch 1
1.55 xsa 1155: compatible format.
1156: This command does not need a local checkout of the repository
1157: to work.
1158: .Pp
1159: The
1160: .Ic rdiff
1161: command takes the following options:
1162: .Bl -tag -width Ds -offset 3n
1163: .It Fl c
1164: Produces a diff with three lines of context.
1165: See
1166: .Xr diff 1
1167: for more information.
1168: This is the default.
1169: .It Xo Fl D Ar date
1170: .Op Fl D Ar date2
1171: .Xc
1172: Differences between the revision at
1173: .Ar date
1174: and the working copy or
1175: .Ar date
1176: and
1177: .Ar date2
1178: (if specified).
1179: .It Fl f
1180: Force the use of the head revision if the specified
1181: date or revision is not found.
1182: .It Fl l
1183: Limit the scope of the search to the local directory
1184: only and disable recursive behaviour.
1185: .It Fl R
1186: Enable recursive behaviour.
1187: This is the default.
1188: .It Xo Fl r Ar rev
1189: .Op Fl r Ar rev2
1190: .Xc
1191: Differences between revision
1192: .Ar rev
1193: and the working copy or
1194: .Ar rev
1195: and
1196: .Ar rev2
1197: (if specified).
1198: .It Fl s
1199: Create a summary change instead of a whole patch.
1200: .It Fl t
1201: Lists differences between the last two revisions of each file.
1202: .It Fl u
1203: Produces a diff in unidiff format.
1204: .It Fl V Ar ver
1205: Use the RCS version
1206: .Ar ver
1207: for keyword substitution.
1208: .El
1209: .Pp
1210: Aliases:
1211: .Ic pa ,
1212: .Ic patch .
1.39 xsa 1213: .It Xo Ic release
1214: .Op Fl d
1215: .Ar dir ...
1216: .Xc
1217: The
1218: .Ic release
1219: command indicates to
1220: .Nm
1221: that the working copy of a module is no longer in use and checks
1222: that non archived modifications in the base repository do exist.
1223: This command is not mandatory.
1224: Local directories could always be removed without using it, but
1225: in this case the handling of history information will no longer be
1226: correct (see the
1227: .Ic history
1228: command).
1229: .Pp
1230: The
1231: .Ic release
1232: command takes the following options:
1233: .Bl -tag -width Ds -offset 3n
1234: .It Fl d Ar dir
1235: Remove the directory
1236: .Ar dir .
1237: Be aware that this option silently removes any directories that have
1238: been added to the local working copy without using the
1239: .Ic add
1240: command.
1241: .El
1242: .Pp
1243: For each file not being synchronized with the base repository,
1244: a single letter prefix is given to specify the state of the file.
1245: The possible prefixes are as follows:
1.61 deraadt 1246: .Bl -tag -width Ds
1.39 xsa 1247: .It \&?
1248: The file is unknown to
1249: .Nm
1250: and is not in the list of files to ignore.
1251: Any new directories which have not been added with the
1252: .Ic add
1253: command are silently ignored as well as their content.
1254: .It A
1255: The file has been added with the
1256: .Ic add
1257: command, but has not been committed to the repository with the
1258: .Ic commit
1259: command.
1260: .It M
1261: The file has been locally modified; a more recent version might
1262: exist in the base repository.
1263: .It R
1264: The file has been removed with the
1265: .Ic remove
1266: command, but has not been committed to the repository with the
1267: .Ic commit
1268: command.
1269: .It U
1270: A more recent version of the file does exist but it is not
1271: locally up to date.
1272: .El
1.40 xsa 1273: .Pp
1274: Aliases:
1275: .Ic re ,
1276: .Ic rel .
1.18 xsa 1277: .It Xo Ic remove
1278: .Op Fl flR
1279: .Op Ar file ...
1280: .Xc
1281: The
1282: .Ic remove
1283: command is used to inform
1284: .Nm
1285: that
1286: .Ar file
1287: is scheduled to be removed from the repository.
1288: Files are not actually removed from the repository until the
1289: .Ic commit
1290: command has been run subsequently.
1.28 xsa 1291: .Pp
1292: The
1.35 jmc 1293: .Ic remove
1294: command takes the following options:
1295: .Bl -tag -width Ds -offset 3n
1296: .It Fl f
1297: Force local file removal.
1.28 xsa 1298: If this flag is not used, the file must be locally removed beforehand for
1299: the command to be valid.
1.35 jmc 1300: .It Fl l
1301: Limit the scope of the search to the local directory
1302: only and disable recursive behaviour.
1303: .It Fl R
1304: Enable recursive behaviour.
1305: This is the default.
1306: .El
1.18 xsa 1307: .Pp
1308: Aliases:
1.19 xsa 1309: .Ic rm ,
1310: .Ic delete .
1.13 jmc 1311: .It Ic rlog
1312: Print out history information for a module.
1.56 xsa 1313: .It Xo Ic rtag
1.57 xsa 1314: .Op Fl abdFflnR
1.56 xsa 1315: .Oo Fl D Ar date \*(Ba
1316: .Fl r Ar rev Oc
1317: .Ar symbolic_tag
1318: .Ar modules ...
1319: .Xc
1320: The
1321: .Ic rtag
1322: command adds a symbolic tag to one or more modules.
1323: It is often used to create a new branch using the
1324: .Fl b
1325: option.
1326: .Pp
1327: The
1328: .Ic rtag
1329: command takes the following options:
1330: .Bl -tag -width Ds -offset 3n
1331: .It Fl a
1332: Clear tag from files already removed with the
1333: .Ic remove
1334: command.
1335: .It Fl b
1336: Create a branch.
1337: .It Fl D Ar date
1338: Tag the most recent revision before
1339: .Ar date .
1340: .It Fl d
1341: Delete tag.
1342: .It Fl F
1343: Move tag if it already exists.
1344: If this option is not used and a tag is used a second time,
1345: .Nm
1346: will not execute the action.
1347: .It Fl f
1348: Force the use of the head revision if the specified
1349: revision or date is not found.
1350: .It Fl l
1351: Limit the scope of the search to the local directory
1352: only and disable recursive behaviour.
1353: .It Fl n
1354: Do not execute programs listed in the
1355: .Pa CVSROOT/modules
1356: file.
1357: .It Fl R
1358: Enable recursive behaviour.
1359: This is the default.
1360: .It Fl r Ar rev
1361: Tag at revision
1362: .Ar rev .
1363: .El
1364: .Pp
1365: Aliases:
1366: .Ic rt ,
1367: .Ic rfreeze .
1.13 jmc 1368: .It Ic server
1369: Server mode.
1.25 xsa 1370: .It Xo Ic status
1371: .Op Fl lRv
1372: .Op Ar file ...
1373: .Xc
1374: The
1375: .Ic status
1376: command is used to display the state of checked out files.
1377: .Pp
1378: The
1.35 jmc 1379: .Ic status
1380: command takes the following options:
1381: .Bl -tag -width Ds -offset 3n
1382: .It Fl l
1383: Limit the scope of the search to the local directory
1384: only and disable recursive behaviour.
1385: .It Fl R
1386: Enable recursive behaviour.
1387: This is the default.
1388: .It Fl v
1389: Display symbolic tags for
1390: .Ar file .
1.25 xsa 1391: .Pp
1.35 jmc 1392: The state may be one of the following:
1.61 deraadt 1393: .Bl -tag -width Ds
1.25 xsa 1394: .It Cm Locally Added
1395: The file has been added with the
1396: .Ic add
1397: command, but has not been committed to the repository with the
1398: .Ic commit
1399: command.
1400: .It Cm Locally Modified
1.35 jmc 1401: The file is up to date, but has been locally modified.
1.25 xsa 1402: .It Cm Locally Removed
1403: The file has been removed with the
1404: .Ic remove
1405: command, but has not been committed to the repository with the
1406: .Ic commit
1407: command.
1408: .It Cm Needs Checkout
1409: The file has not been modified; a new version is available.
1410: .It Cm Needs Merge
1411: The file has been modified and a newer version is available.
1412: .It Cm Needs Patch
1413: Same as
1414: .Ic Needs Checkout
1415: but, in client-server mode, only the differences are sent to save
1416: network resources.
1417: .It Cm Unresolved Conflict
1418: A merge has been done, but unresolved conflicts still remain.
1419: .It Cm Up-to-date
1420: The file is up to date.
1421: .El
1.35 jmc 1422: .El
1.13 jmc 1423: .Pp
1424: Aliases:
1425: .Ic st ,
1426: .Ic stat .
1.21 jmc 1427: .It Xo Ic tag
1.58 jmc 1428: .Op Fl bcdFflR
1.57 xsa 1429: .Oo Fl D Ar date \*(Ba
1430: .Fl r Ar rev Oc
1.21 jmc 1431: .Op Ar symbolic_tag
1432: .Op Ar file ...
1433: .Xc
1434: .Pp
1.57 xsa 1435: The
1436: .Ic tag
1437: command adds a symbolic tag to a checked out version of one or more files.
1.21 jmc 1438: .Pp
1439: The
1.35 jmc 1440: .Ic tag
1441: command takes the following options:
1442: .Bl -tag -width Ds -offset 3n
1443: .It Fl b
1.57 xsa 1444: Create a branch.
1445: .It Fl c
1446: Check that working files are not modified.
1447: .It Fl D Ar date
1448: Tag the most recent revision before
1449: .Ar date .
1.35 jmc 1450: .It Fl d
1451: Delete tag.
1.57 xsa 1452: .It Fl F
1453: Move tag if it already exists.
1454: If this option is not used and a tag is used a second time,
1455: .Nm
1456: will not execute the action.
1457: .It Fl f
1458: Force the use of the head revision if the specified
1459: revision or date is not found.
1.35 jmc 1460: .It Fl l
1461: Limit the scope of the search to the local directory
1462: only and disable recursive behaviour.
1463: .It Fl R
1464: Enable recursive behaviour.
1465: This is the default.
1.57 xsa 1466: .It Fl r Ar rev
1467: Tag at revision
1468: .Ar rev .
1.35 jmc 1469: .El
1.13 jmc 1470: .Pp
1471: Aliases:
1472: .Ic ta ,
1473: .Ic freeze .
1.30 xsa 1474: .It Xo Ic unedit Op Fl lR
1475: .Op Ar file ...
1476: .Xc
1477: .Pp
1478: The
1479: .Ic unedit
1480: command is used to give up an edition on a file and thus cancel
1481: the wanted temporary notifications.
1482: If the file has been modified since the
1.13 jmc 1483: .Ic edit
1.30 xsa 1484: command has been issued,
1485: .Nm
1486: will ask if you want to go back to the previous version, and lose the
1487: modifications done on the file, or stay in edition mode on it.
1488: .Pp
1489: The
1.35 jmc 1490: .Ic unedit
1491: command takes the following options:
1492: .Bl -tag -width Ds -offset 3n
1493: .It Fl l
1494: Limit the scope of the search to the local directory
1495: only and disable recursive behaviour.
1496: .It Fl R
1497: Enable recursive behaviour.
1498: This is the default.
1499: .El
1.11 jmc 1500: .It Xo Ic update
1.38 xsa 1501: .Op Fl AdflPpR
1502: .Oo Fl D Ar date \*(Ba
1503: .Fl r Ar rev Oc
1504: .Op Fl I Ar ign
1505: .Op Fl j Ar rev
1506: .Op Fl k Ar mode
1507: .Op Fl W Ar spec
1.4 jfb 1508: .Op Ar file ...
1.3 jfb 1509: .Xc
1.7 jfb 1510: .Pp
1.3 jfb 1511: The
1.11 jmc 1512: .Ic update
1.17 david 1513: command is used to merge any of the changes that have occurred on the remote
1.3 jfb 1514: repository into the local one where the command was run.
1515: .Pp
1516: The
1.35 jmc 1517: .Ic update
1518: command takes the following options:
1519: .Bl -tag -width Ds -offset 3n
1520: .It Fl A
1.41 xsa 1521: Reset any sticky tags, dates, or keyword substitution modes that
1522: have been set on the tree.
1.38 xsa 1523: .It Fl D Ar date
1524: Update as of the latest revision no later than
1525: .Ar date
1526: (is sticky).
1527: .It Fl d
1528: Create any new directories.
1529: Without this option,
1530: .Nm
1531: does not create any new files sitting in these new directories
1532: added in the base repository since the last update of the working
1533: copy, or since the last update with the
1534: .Fl d
1535: option.
1536: .It Fl f
1537: Force the use of the head revision if the specified
1538: tag or date is not found.
1539: .It Fl I Ar ign
1540: Ignore files specified by
1541: .Ar ign .
1542: This option can be used several times on the command line.
1543: To see all files, use the
1544: .Fl I Ar !\&
1545: specification.
1546: .It Fl j Ar rev
1547: Merge in changes made between current revision and
1548: .Ar rev .
1549: If two
1550: .Fl j
1551: options are specified, only merge the differences between the two
1552: revisions of the branch.
1553: This allows successive merges without having to resolve
1554: already resolved conflicts again.
1555: .It Fl k Ar mode
1556: Specify the keyword substitution mode (is sticky).
1.35 jmc 1557: .It Fl l
1558: Limit the scope of the search to the local directory
1559: only and disable recursive behaviour.
1560: .It Fl P
1561: Prune any directories that have become empty as a result of the update.
1.38 xsa 1562: .It Fl p
1563: Send the result of the update to standard output (avoids stickiness).
1.35 jmc 1564: .It Fl R
1565: Enable recursive behaviour.
1566: This is the default.
1.38 xsa 1567: .It Fl r Ar rev
1568: Update from a particular revision or branch (is sticky).
1569: .It Fl W Ar spec
1570: Wrappers specification line.
1.35 jmc 1571: .El
1.38 xsa 1572: .Pp
1573: By default, the
1574: .Ic update
1575: command does not create new directories; the
1576: .Fl d
1577: option must be used for that.
1.29 xsa 1578: .Pp
1579: For each file updated, a single letter prefix is given to
1580: specify the state of the file.
1581: The possible prefixes are as follows:
1.61 deraadt 1582: .Bl -tag -width Ds
1.29 xsa 1583: .It \&?
1584: The file is unknown to
1585: .Nm .
1586: .It A
1587: The file has been added with the
1588: .Ic add
1589: command, but has not been committed to the repository with the
1590: .Ic commit
1591: command.
1592: .It C
1593: A merge, with a more recent version of the file, has been done,
1594: but unresolved conflicts still remain.
1595: .It M
1596: The file has been locally modified; if a more recent version
1597: is available, the merge has been done without conflict.
1598: .It P
1599: The same as
1600: .Sq U ,
1601: but, in client-server mode, only differences are sent to save network
1602: resources.
1603: .It R
1604: The file has been removed with the
1605: .Ic remove
1606: command, but has not been committed to the repository with the
1607: .Ic commit
1608: command.
1609: .It U
1610: The file is up to date.
1611: .El
1.13 jmc 1612: .Pp
1613: Aliases:
1614: .Ic up ,
1615: .Ic upd .
1.11 jmc 1616: .It Ic version
1.3 jfb 1617: Causes
1618: .Nm
1619: to print its version information.
1.14 jfb 1620: If this command is issued within a local copy of a remote repository or
1621: if either the
1622: .Ev CVSROOT
1623: environment variable or the
1624: .Fl d
1625: flag specify a remote repository,
1.3 jfb 1626: .Nm
1627: will also connect to the server and ask it to print its version information.
1.13 jmc 1628: .Pp
1629: Aliases:
1630: .Ic ve ,
1631: .Ic ver .
1.32 xsa 1632: .It Xo Ic watch
1633: .Ar on | off | add | remove
1634: .Op Fl lR
1635: .Op Fl a Ar action
1636: .Op Ar file ...
1637: .Xc
1638: .Pp
1639: The
1640: .Ic watch
1641: command switches a file from normal mode to
1642: pseudo-lock mode as well as handling the notifications associated
1643: with it.
1644: Pseudo-lock mode means knowing who is editing a file:
1645: for that,
1646: .Nm
1647: extracts the file in read-only mode.
1648: Users must use the
1649: .Ic edit
1650: command to get the editing rights on the file.
1651: .Pp
1652: One of the following arguments to the
1653: .Ic watch
1654: command is mandatory: on, off, add, or remove.
1655: .Ar on
1656: switches the file into pseudo-lock mode;
1657: .Ar off
1658: switches it back to normal mode;
1659: .Ar add
1660: adds notifications for specific actions on the file;
1661: .Ar remove
1662: removes those notifications.
1663: .Pp
1664: The notifications are permanent.
1665: They remain in place until the
1666: .Ic watch remove
1667: command is issued while the temporary notifications are
1668: made available with the
1669: .Ic edit
1670: command.
1671: .Pp
1672: The
1.35 jmc 1673: .Ic watch
1674: command takes the following options:
1675: .Bl -tag -width Ds -offset 3n
1676: .It Fl a Ar action
1677: Specify the permanent notification wanted for
1.32 xsa 1678: .Ar add | remove :
1679: .Pp
1.61 deraadt 1680: .Bl -tag -width Ds -compact
1.32 xsa 1681: .It Cm commit
1.35 jmc 1682: Another user has committed changes to the file.
1.32 xsa 1683: .It Cm edit
1.35 jmc 1684: Another user is editing the file.
1.32 xsa 1685: .It Cm unedit
1.35 jmc 1686: Another user has finished editing the file.
1.32 xsa 1687: .It Cm all
1688: All of the above.
1689: .It Cm none
1690: No notification.
1691: .El
1692: .Pp
1.35 jmc 1693: If no specification is requested using the
1.32 xsa 1694: .Ar add
1695: or
1696: .Ar remove
1697: arguments, it implies the
1698: .Fl a Ar all
1699: option.
1.35 jmc 1700: .It Fl l
1701: Limit the scope of the search to the local directory
1702: only and disable recursive behaviour.
1703: .It Fl R
1704: Enable recursive behaviour.
1705: This is the default.
1706: .El
1.32 xsa 1707: .It Xo Ic watchers
1708: .Op Fl lR
1709: .Op Ar file ...
1710: .Xc
1711: .Pp
1712: The
1713: .Ic watchers
1714: command lists the users who asked for notifications as well as the
1715: notifications details.
1716: The possible notifications are as follows:
1.61 deraadt 1717: .Bl -tag -width Ds
1.32 xsa 1718: .It Cm commit
1719: Permanent watch of a commit of a new version of a file.
1720: .It Cm edit
1721: Permanent watch of the start of file edition.
1722: .It Cm tcommit
1723: Temporary watch of a commit of new version of a file.
1724: .It Cm tedit
1725: Temporary watch of the start of file edition.
1726: .It Cm tunedit
1727: Temporary watch of the end of file edition.
1728: .It Cm unedit
1729: Permanent watch of the end of file edition.
1730: .El
1731: .Pp
1732: The temporary watches are set using the
1733: .Ic edit
1734: command, until the
1735: .Ic commit
1736: or
1737: .Ic unedit
1.35 jmc 1738: command is issued on a file.
1739: .Pp
1740: The
1741: .Ic watchers
1742: command takes the following options:
1743: .Bl -tag -width Ds -offset 3n
1744: .It Fl l
1745: Limit the scope of the search to the local directory
1746: only and disable recursive behaviour.
1747: .It Fl R
1748: Enable recursive behaviour.
1749: This is the default.
1750: .El
1.1 jfb 1751: .El
1752: .Sh ENVIRONMENT
1.61 deraadt 1753: .Bl -tag -width Ds
1.8 jmc 1754: .It Ev CVS_CLIENT_LOG
1755: This variable enables logging of all communications between the client and
1756: server when running in non-local mode.
1757: If set, this environment variable must contain a base path from which two
1758: paths will be generated by appending ".in" to the value for the server's
1759: input and ".out" for the server's output.
1.64 joris 1760: .Pp
1.65 ! joris 1761: The path can contain the following substitutes:
! 1762: .Pp
! 1763: .Bl -tag -width Ds -offset indent -compact
1.64 joris 1764: .It %c
1.65 ! joris 1765: the command being run
1.64 joris 1766: .It %d
1.65 ! joris 1767: the date
! 1768: .It %p
! 1769: the process ID
1.64 joris 1770: .It %u
1.65 ! joris 1771: the username of the person running it
1.64 joris 1772: .El
1773: .Pp
1774: The substitutes are only supported by OpenCVS.
1.1 jfb 1775: .It Ev CVS_RSH
1776: Name of the program to use when connecting to the server through a remote
1777: shell.
1778: The default is to use the
1779: .Xr ssh 1
1780: program.
1781: .It Ev CVS_SERVER
1782: If set, gives the name of the program to invoke as a
1783: .Nm
1784: server when using remote shell.
1785: The default is to use `cvs'.
1786: .It Ev CVSEDITOR
1787: Name of the editor to use when editing commit messages.
1.8 jmc 1788: Checked before
1789: .Ev EDITOR
1790: and
1791: .Ev VISUAL .
1792: .It Ev CVSROOT
1793: When set, this variable should contain the string pointing to the root
1794: directory of the CVS repository.
1795: The contents of this variable are ignored when the
1796: .Fl d
1797: option is given or if `Root' files exist in the checked-out copy.
1.1 jfb 1798: .It Ev EDITOR
1.9 jmc 1799: Name of the editor to use when editing commit messages.
1800: This is traditionally a line-oriented editor,
1801: such as
1802: .Xr ex 1 .
1.1 jfb 1803: .It Ev VISUAL
1.9 jmc 1804: Name of the editor to use when editing commit messages.
1805: This is traditionally a screen-oriented editor,
1806: such as
1807: .Xr vi 1 .
1.8 jmc 1808: .El
1809: .Sh FILES
1810: .Bl -tag -width Ds
1811: .It Pa $HOME/.cvsrc
1812: File containing a list of implicit options to pass to certain commands.
1813: This file is read on startup unless the
1814: .Fl f
1815: option is specified.
1816: .It Pa $CVSROOT/CVSROOT
1817: Directory containing repository administrative files.
1818: .It Pa $CVSROOT/CVSROOT/loginfo
1819: File containing associations between modules and handlers for
1820: post-commit logging.
1.1 jfb 1821: .El
1822: .Sh SEE ALSO
1823: .Xr diff 1 ,
1.15 jmc 1824: .Xr gzip 1 ,
1.1 jfb 1825: .Xr patch 1 ,
1.8 jmc 1826: .Xr rcs 1 ,
1.16 jmc 1827: .Xr cvsrc 5 ,
1.62 xsa 1828: .Xr cvsintro 7
1.8 jmc 1829: .Sh HISTORY
1830: The OpenCVS project is a BSD-licensed rewrite of the original
1831: Concurrent Versioning System written by Jean-Francois Brousseau.
1832: The original CVS code was written in large parts by Dick Grune,
1833: Brian Berliner and Jeff Polk.
1834: .Sh AUTHORS
1835: .An Jean-Francois Brousseau
1836: .An Vincent Labrecque
1837: .An Joris Vink
1.43 jfb 1838: .An Xavier Santolaria
1.2 jfb 1839: .Sh CAVEATS
1840: This CVS implementation does not fully conform to the GNU CVS version.
1.3 jfb 1841: In some cases, this was done explicitly because GNU CVS has inconsistencies
1.2 jfb 1842: or ambiguous behaviour.
1.3 jfb 1843: Some things have also been left out or modified to enhance the overall
1844: security of the system.
1845: .Pp
1846: Among other things, support for the pserver connection mechanism has been
1847: dropped because of security issues with the authentication mechanism.