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