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