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