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