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