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