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