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