Annotation of src/usr.bin/cvs/cvs.1, Revision 1.38
1.38 ! xsa 1: .\" $OpenBSD: cvs.1,v 1.37 2005/02/01 14:20:05 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.3 jfb 32: .Nd OpenCVS Concurrent Versioning System client
1.1 jfb 33: .Sh SYNOPSIS
34: .Nm
1.15 jmc 35: .Op Fl flQqtv
1.1 jfb 36: .Op Fl d Ar root
37: .Op Fl e Ar editor
1.20 jmc 38: .Xo
39: .Oo Fl s
40: .Ar var Ns = Ns Ar val Oc
41: .Xc
1.15 jmc 42: .Op Fl z Ar level
1.1 jfb 43: .Ar command Op Ar ...
44: .Sh DESCRIPTION
45: The
46: .Nm
47: program acts as both client and server for the use of and administration of
48: a CVS source repository.
49: CVS is used to maintain version information on files that are kept in a
50: repository.
51: Although it is more commonly used to track changes in source code, there
52: are no real limitations to the type of files that you can store in a
53: repository.
1.35 jmc 54: For a general introduction to CVS, see
55: .Xr cvsintro 7 .
1.1 jfb 56: .Pp
1.7 jfb 57: .Nm
1.35 jmc 58: reads its startup configuration file,
59: .Pa .cvsrc ,
1.7 jfb 60: from the home directory of the user who invoked it.
61: This file is used to specify implicit options passed to
62: .Nm
63: or one of its commands whenever it is invoked.
1.35 jmc 64: The defaults in the configuration file can be overridden with the
65: .Fl f
66: option (see below).
1.16 jmc 67: See
68: .Xr cvsrc 5
69: for further information.
1.7 jfb 70: .Pp
1.1 jfb 71: The following options are supported:
1.15 jmc 72: .Bl -tag -width "-e editorXX"
1.1 jfb 73: .It Fl d Ar root
74: Use
75: .Ar root
76: as the path to the root directory of the CVS repository.
77: The value must specify an absolute path.
78: .It Fl e Ar editor
79: Use the program
80: .Ar editor
81: whenever editing log information.
1.8 jmc 82: This option overrides the environment variables CVSEDITOR, VISUAL, and EDITOR.
1.1 jfb 83: .It Fl f
1.7 jfb 84: Do not read the user's configuration file on startup.
1.1 jfb 85: .It Fl l
86: Suppress logging of history information.
87: .It Fl Q
88: Be extra quiet.
89: Only error messages will be displayed.
90: .It Fl q
91: Be quiet about reporting.
1.20 jmc 92: .It Fl s Ar var Ns = Ns Ar val
93: Set the value of the internal variable
94: .Ar var
95: to the string
96: .Ar val .
1.15 jmc 97: .It Fl t
98: Trace program execution.
1.1 jfb 99: .It Fl v
100: Display version information and exit.
1.15 jmc 101: .It Fl z Ar level
102: Specify the compression level to
103: .Xr gzip 1
104: when transferring files.
105: The compression level ranges from 1 to 9,
106: with 1 being the fastest,
107: and 9 providing the best level of compression.
108: The default is 6.
1.1 jfb 109: .El
110: .Sh COMMANDS
1.3 jfb 111: The following commands are supported by
112: .Nm .
1.7 jfb 113: .Bl -tag -width "xxxxxxxxxxxx"
1.11 jmc 114: .It Xo Ic add Op Fl m Ar msg
1.1 jfb 115: .Ar file Op ...
1.3 jfb 116: .Xc
1.7 jfb 117: .Pp
1.1 jfb 118: Before a file is known to CVS, it must be added to the repository using
119: this command.
120: Adding a file does not actually publish the contents of the
1.7 jfb 121: file, so you must
1.11 jmc 122: .Ic commit
1.7 jfb 123: the first revision in order to let other users see the file with the
1.11 jmc 124: .Ic update
1.4 jfb 125: or
1.11 jmc 126: .Ic checkout
1.4 jfb 127: commands.
1.1 jfb 128: .Pp
1.35 jmc 129: The
130: .Ic add
131: command takes the following options:
132: .Bl -tag -width Ds -offset 3n
133: .It Fl m Ar msg
134: Attach log message
135: .Ar msg .
136: By default, no log message is required.
137: .El
1.13 jmc 138: .Pp
139: Aliases:
140: .Ic ad ,
141: .Ic new .
142: .It Ic admin
143: Administration front-end for
144: .Xr rcs 1 .
145: .Pp
146: Aliases:
147: .Ic adm ,
148: .Ic rcs .
1.26 xsa 149: .It Xo Ic annotate
150: .Op Fl flR
151: .Oo Fl D Ar date \*(Ba
152: .Fl r Ar rev Oc
153: .Op Ar file ...
154: .Xc
155: .Pp
1.23 xsa 156: For each line of any files specified, show information about its
157: last revision.
158: The information given is the last revision when a modification occurred,
159: the author's name, and the date of the revision.
1.26 xsa 160: .Pp
161: The
1.35 jmc 162: .Ic annotate
163: command takes the following options:
164: .Bl -tag -width Ds -offset 3n
165: .It Fl D Ar date
166: Show the annotations as of the latest revision no later than
167: .Ar date .
168: .It Fl f
169: Force the use of the head revision if the specified
1.26 xsa 170: tag or date is not found.
171: This can be used in combination with
172: .Fl D
173: or
174: .Fl r
175: to ensure that there is some output from the
176: .Ic annotate
177: command, even if only to show Revision 1.1 of the file.
1.35 jmc 178: .It Fl l
179: Limit the scope of the search to the local directory
180: only and disable recursive behaviour.
181: .It Fl R
182: Enable recursive behaviour.
183: This is the default.
184: .It Fl r Ar rev
185: Show annotations as of revision
1.26 xsa 186: .Ar rev
187: (can be a revision number or a tag).
1.35 jmc 188: .El
1.13 jmc 189: .Pp
190: Aliases:
191: .Ic ann .
1.11 jmc 192: .It Xo Ic checkout
1.37 xsa 193: .Op Fl AcflNnPpRs
194: .Op Fl d Ar dir
195: .Op Fl j Ar rev
196: .Op Fl k Ar mode
197: .Fl D Ar date \*(Ba
198: .Fl r Ar rev
199: .Ar module ...
1.7 jfb 200: .Xc
201: .Pp
202: The
1.11 jmc 203: .Ic checkout
1.7 jfb 204: command is used to create a local copy of one or more modules present on the
205: target CVS repository.
1.37 xsa 206: .Pp
207: The
208: .Ic checkout
209: command takes the following options:
210: .Bl -tag -width Ds -offset 3n
211: .It Fl A
212: Reset any sticky tags, dates, or kopts that have been set on the tree.
213: .It Fl c
214: Display the list of available modules.
215: .It Fl D Ar date
216: Check out as of the latest revision no later than
217: .Ar date
218: (is sticky).
219: .It Fl d Ar dir
220: Check out in directory
221: .Ar dir
222: instead of the directory bearing the same name as the
223: .Ar module .
224: .It Fl f
225: Force the use of the head revision if the specified
226: tag or date is not found.
227: .It Fl j Ar rev
228: Merge in changes made between current revision and
229: .Ar rev .
230: If two
231: .Fl j
232: options are specified, only merge the differences between the two
233: revisions of the branch.
234: This allows successive merges without having to resolve
235: already resolved conflicts again.
236: .It Fl k Ar mode
237: Specify the keyword substitution mode (is sticky).
238: .It Fl l
239: Limit the scope of the search to the local directory
240: only and disable recursive behaviour.
241: .It Fl N
242: If used in conjunction with the
243: .Fl d
244: option, files are placed in local directory
245: .Ar module ,
246: located in directory
247: .Ar dir .
248: .It Fl n
249: Do not execute programs listed in the
250: .Pa CVSROOT/modules
251: file.
252: .It Fl P
253: Prune empty directories.
254: .It Fl p
255: Check out files to standard output (avoids stickiness).
256: .It Fl R
257: Enable recursive behaviour.
258: This is the default.
259: .It Fl r Ar rev
260: Check out from a particular revision or branch (implies
261: .Fl P )
262: (is sticky).
263: .It Fl s
264: Like
265: .Fl c ,
266: but include module status.
267: .El
1.13 jmc 268: .Pp
269: Aliases:
270: .Ic co ,
271: .Ic get .
1.11 jmc 272: .It Xo Ic commit
1.3 jfb 273: .Op Fl flnR
1.27 xsa 274: .Oo Fl F Ar logfile \*(Ba
275: .Fl m Ar msg Oc
1.3 jfb 276: .Op Fl r Ar rev
1.4 jfb 277: .Op Ar file ...
1.3 jfb 278: .Xc
1.7 jfb 279: .Pp
1.1 jfb 280: The
1.11 jmc 281: .Ic commit
1.1 jfb 282: command is used to send local changes back to the server and update the
283: repository's information to reflect the changes.
1.27 xsa 284: .Pp
285: The
1.35 jmc 286: .Ic commit
287: command takes the following options:
288: .Bl -tag -width Ds -offset 3n
289: .It Fl F Ar logfile
290: Specify a
1.27 xsa 291: .Ar file
1.35 jmc 292: which contains the log message.
293: .It Fl f
294: Force a file to be committed, even though it is unchanged.
295: .It Fl l
296: Limit the scope of the search to the local directory
297: only and disable recursive behaviour.
298: .It Fl m Ar msg
299: Specify a log message on the command line (suppresses the editor invocation).
300: .It Fl n
301: Do not execute programs listed in the
302: .Pa CVSROOT/modules
303: file.
304: .It Fl R
305: Enable recursive behaviour.
306: This is the default.
307: .It Fl r Ar rev
308: Commit to a particular symbolic or numerical revision.
309: .El
1.13 jmc 310: .Pp
311: Aliases:
312: .Ic ci ,
313: .Ic com .
1.24 jfb 314: .It Xo Ic diff Op Fl cilNpu
1.3 jfb 315: .Op Fl D Ar date
316: .Op Fl r Ar rev
1.4 jfb 317: .Op Ar file ...
1.3 jfb 318: .Xc
1.7 jfb 319: .Pp
1.3 jfb 320: The
1.11 jmc 321: .Ic diff
1.3 jfb 322: command is very similar to the
323: .Xr diff 1
1.5 jfb 324: program, except that the differential comparisons that it generates are
1.3 jfb 325: between local or remote revisions of files stored in the CVS repository.
1.13 jmc 326: .Pp
327: Aliases:
328: .Ic di ,
329: .Ic dif .
1.30 xsa 330: .It Xo Ic edit Op Fl lR
331: .Op Fl a Ar action
332: .Op Ar file ...
333: .Xc
334: .Pp
335: The
336: .Ic edit
1.35 jmc 337: command is used to make a file that is being watched
338: (and therefore read-only)
1.30 xsa 339: readable and writable and to inform others that you are planning to edit it.
340: Notifications terminate when the
341: .Ic commit
342: command is issued.
343: Editing rights on the file can be given up using the
344: .Ic unedit
1.35 jmc 345: command, which terminates the temporary notifications.
1.30 xsa 346: .Pp
347: The
1.35 jmc 348: .Ic edit
349: command takes the following options:
350: .Bl -tag -width Ds -offset 3n
351: .It Fl a Ar action
352: Specify the temporary notification wanted:
353: .Pp
354: .Bl -tag -width "commitXX" -compact
1.30 xsa 355: .It Cm commit
1.35 jmc 356: Another user has committed changes to the file.
1.30 xsa 357: .It Cm edit
358: Another user has issued the
359: .Ic edit
1.35 jmc 360: command on the file.
1.30 xsa 361: .It Cm unedit
362: Another user has issued the
363: .Ic unedit
1.35 jmc 364: command on the file.
1.30 xsa 365: .It Cm all
366: All of the above.
367: .It Cm none
368: None of the above.
369: .El
370: .Pp
371: The
372: .Fl a
373: flag may appear more than once, or not at all.
374: If omitted, the action defaults to
1.31 jmc 375: .Cm all .
1.35 jmc 376: .It Fl l
377: Limit the scope of the search to the local directory
378: only and disable recursive behaviour.
379: .It Fl R
380: Enable recursive behaviour.
381: This is the default.
382: .El
1.33 xsa 383: .It Xo Ic editors
384: .Op Fl lR
1.34 xsa 385: .Op Ar file ...
1.33 xsa 386: .Xc
387: .Pp
388: The
389: .Ic editors
390: command lists the users with edition rights on a file.
391: For that, pseudo-lock mode must be enabled (see the
392: .Ic watch
393: command).
394: The e-mail address of the user editing the file, the timestamp
395: when the edition first started, the host from where the edition
396: has been requested and the path to the edited file are listed.
397: .Pp
398: The
1.35 jmc 399: .Ic editors
400: command takes the following options:
401: .Bl -tag -width Ds -offset 3n
402: .It Fl l
403: Limit the scope of the search to the local directory
404: only and disable recursive behaviour.
405: .It Fl R
406: Enable recursive behaviour.
407: This is the default.
408: .El
1.36 xsa 409: .It Xo Ic export
410: .Op Fl flNnR
411: .Op Fl d Ar dir
412: .Op Fl k Ar mode
413: .Fl D Ar date \*(Ba
414: .Fl r Ar rev
415: .Ar module ...
416: .Xc
417: .Pp
418: The
419: .Ic export
420: command extracts a copy of
421: .Ar module
422: without including the directories used for management by
423: .Nm .
424: This eases production of a software release.
425: A date or a revision must be specified for the command to be valid,
426: which ensures that later extractions can be reproduced with the same
427: options as the release.
428: .Pp
429: The checked out module's files will be placed in a directory
430: bearing the same name as the checked out module, by default.
431: .Pp
432: The
433: .Ic export
434: command takes the following options:
435: .Bl -tag -width Ds -offset 3n
436: .It Fl D Ar date
437: Export as of the latest revision no later than
438: .Ar date .
439: .It Fl d Ar dir
440: Export in directory
441: .Ar dir
442: instead of the directory bearing the same name as the
443: .Ar module .
444: .It Fl f
445: Force the use of the head revision if the specified
446: tag or date is not found.
447: This can be used in combination with
448: .Fl D
449: or
450: .Fl r
451: to ensure that the
452: .Ic export
453: command is valid.
454: .It Fl k Ar mode
455: Specify the keyword substitution mode: the
456: .Fl k Ar v
457: option is often used to avoid substitution of keywords during
458: a release cycle.
459: However, be aware that it does not handle an export containing
460: binary files correctly.
461: .It Fl l
462: Limit the scope of the search to the local directory
463: only and disable recursive behaviour.
464: .It Fl N
465: If used in conjunction with the
466: .Fl d
467: option, files are placed in local directory
468: .Ar module ,
469: located in directory
470: .Ar dir .
471: .It Fl n
472: Do not execute programs listed in the
473: .Pa CVSROOT/modules
474: file.
475: .It Fl R
476: Enable recursive behaviour.
477: This is the default.
478: .It Fl r Ar rev
479: Export from a particular symbolic or numerical revision.
480: .El
1.13 jmc 481: .Pp
482: Aliases:
483: .Ic ex ,
484: .Ic exp .
485: .It Ic history
486: Show repository access history.
487: .Pp
488: Aliases:
489: .Ic hi ,
490: .Ic his .
1.22 jmc 491: .It Xo Ic import
492: .Op Fl b Ar branch
493: .Op Fl m Ar msg
494: .Ar repository
495: .Ar vendortag
496: .Ar releasetag
497: .Xc
498: .Pp
1.13 jmc 499: Import sources into CVS using vendor branches.
1.22 jmc 500: .Pp
501: At least three arguments are required:
502: .Ar repository
503: specifies the location of the sources to be imported;
504: .Ar vendortag
505: is a tag for the entire branch;
506: .Ar releasetag
507: is used to identify the files you created with
1.35 jmc 508: .Ic cvs import .
509: .Pp
510: The
511: .Ic import
512: command takes the following options:
513: .Bl -tag -width Ds -offset 3n
514: .It Fl b Ar branch
515: Specify the first-level branch number.
516: .It Fl m Ar msg
517: Specify the log message to send.
518: .El
1.13 jmc 519: .Pp
520: Aliases:
521: .Ic im ,
522: .Ic imp .
523: .It Ic init
524: Create a CVS repository if it doesn't exist.
525: .It Ic kserver
526: Start a Kerberos authentication server.
527: .It Ic log
528: Print out history information for files.
529: .Pp
530: Aliases:
531: .Ic lo .
532: .It Ic login
1.35 jmc 533: Prompt for a password for an authenticating server.
1.13 jmc 534: .It Ic logout
1.35 jmc 535: Remove an entry in
536: .Pa .cvspass
537: for a remote repository.
1.13 jmc 538: .It Ic rdiff
539: Create
540: .Xr patch 1
541: format diffs between releases.
542: .It Ic release
543: Indicate that a module is no longer in use.
1.18 xsa 544: .It Xo Ic remove
545: .Op Fl flR
546: .Op Ar file ...
547: .Xc
548: The
549: .Ic remove
550: command is used to inform
551: .Nm
552: that
553: .Ar file
554: is scheduled to be removed from the repository.
555: Files are not actually removed from the repository until the
556: .Ic commit
557: command has been run subsequently.
1.28 xsa 558: .Pp
559: The
1.35 jmc 560: .Ic remove
561: command takes the following options:
562: .Bl -tag -width Ds -offset 3n
563: .It Fl f
564: Force local file removal.
1.28 xsa 565: If this flag is not used, the file must be locally removed beforehand for
566: the command to be valid.
1.35 jmc 567: .It Fl l
568: Limit the scope of the search to the local directory
569: only and disable recursive behaviour.
570: .It Fl R
571: Enable recursive behaviour.
572: This is the default.
573: .El
1.18 xsa 574: .Pp
575: Aliases:
1.19 xsa 576: .Ic rm ,
577: .Ic delete .
1.13 jmc 578: .It Ic rlog
579: Print out history information for a module.
580: .It Ic rtag
581: Add a symbolic link to a module.
582: .It Ic server
583: Server mode.
1.25 xsa 584: .It Xo Ic status
585: .Op Fl lRv
586: .Op Ar file ...
587: .Xc
588: The
589: .Ic status
590: command is used to display the state of checked out files.
591: .Pp
592: The
1.35 jmc 593: .Ic status
594: command takes the following options:
595: .Bl -tag -width Ds -offset 3n
596: .It Fl l
597: Limit the scope of the search to the local directory
598: only and disable recursive behaviour.
599: .It Fl R
600: Enable recursive behaviour.
601: This is the default.
602: .It Fl v
603: Display symbolic tags for
604: .Ar file .
1.25 xsa 605: .Pp
1.35 jmc 606: The state may be one of the following:
607: .Bl -tag -width "Locally modified"
1.25 xsa 608: .It Cm Locally Added
609: The file has been added with the
610: .Ic add
611: command, but has not been committed to the repository with the
612: .Ic commit
613: command.
614: .It Cm Locally Modified
1.35 jmc 615: The file is up to date, but has been locally modified.
1.25 xsa 616: .It Cm Locally Removed
617: The file has been removed with the
618: .Ic remove
619: command, but has not been committed to the repository with the
620: .Ic commit
621: command.
622: .It Cm Needs Checkout
623: The file has not been modified; a new version is available.
624: .It Cm Needs Merge
625: The file has been modified and a newer version is available.
626: .It Cm Needs Patch
627: Same as
628: .Ic Needs Checkout
629: but, in client-server mode, only the differences are sent to save
630: network resources.
631: .It Cm Unresolved Conflict
632: A merge has been done, but unresolved conflicts still remain.
633: .It Cm Up-to-date
634: The file is up to date.
635: .El
1.35 jmc 636: .El
1.13 jmc 637: .Pp
638: Aliases:
639: .Ic st ,
640: .Ic stat .
1.21 jmc 641: .It Xo Ic tag
1.35 jmc 642: .Op Fl bdlR
1.21 jmc 643: .Op Fl r Ar old_tag
644: .Op Ar symbolic_tag
645: .Op Ar file ...
646: .Xc
647: .Pp
648: Add a symbolic tag to a checked out version of
649: .Ar file .
650: .Pp
651: The
1.35 jmc 652: .Ic tag
653: command takes the following options:
654: .Bl -tag -width Ds -offset 3n
655: .It Fl b
656: Specify a branch tag.
657: .It Fl d
658: Delete tag.
659: .It Fl l
660: Limit the scope of the search to the local directory
661: only and disable recursive behaviour.
662: .It Fl R
663: Enable recursive behaviour.
664: This is the default.
665: .It Fl r Ar old_tag
1.21 jmc 666: .Nm
667: will only tag the files with
668: .Ar symbolic_tag
669: if they are already tagged with
670: .Ar old_tag .
671: When done, it will remove the old tag
672: leaving only the new tag behind on exactly the same files.
1.35 jmc 673: .El
1.13 jmc 674: .Pp
675: Aliases:
676: .Ic ta ,
677: .Ic freeze .
1.30 xsa 678: .It Xo Ic unedit Op Fl lR
679: .Op Ar file ...
680: .Xc
681: .Pp
682: The
683: .Ic unedit
684: command is used to give up an edition on a file and thus cancel
685: the wanted temporary notifications.
686: If the file has been modified since the
1.13 jmc 687: .Ic edit
1.30 xsa 688: command has been issued,
689: .Nm
690: will ask if you want to go back to the previous version, and lose the
691: modifications done on the file, or stay in edition mode on it.
692: .Pp
693: The
1.35 jmc 694: .Ic unedit
695: command takes the following options:
696: .Bl -tag -width Ds -offset 3n
697: .It Fl l
698: Limit the scope of the search to the local directory
699: only and disable recursive behaviour.
700: .It Fl R
701: Enable recursive behaviour.
702: This is the default.
703: .El
1.11 jmc 704: .It Xo Ic update
1.38 ! xsa 705: .Op Fl AdflPpR
! 706: .Oo Fl D Ar date \*(Ba
! 707: .Fl r Ar rev Oc
! 708: .Op Fl I Ar ign
! 709: .Op Fl j Ar rev
! 710: .Op Fl k Ar mode
! 711: .Op Fl W Ar spec
1.4 jfb 712: .Op Ar file ...
1.3 jfb 713: .Xc
1.7 jfb 714: .Pp
1.3 jfb 715: The
1.11 jmc 716: .Ic update
1.17 david 717: command is used to merge any of the changes that have occurred on the remote
1.3 jfb 718: repository into the local one where the command was run.
719: .Pp
720: The
1.35 jmc 721: .Ic update
722: command takes the following options:
723: .Bl -tag -width Ds -offset 3n
724: .It Fl A
725: Reset any sticky tags, dates, or kopts that have been set on the tree.
1.38 ! xsa 726: .It Fl D Ar date
! 727: Update as of the latest revision no later than
! 728: .Ar date
! 729: (is sticky).
! 730: .It Fl d
! 731: Create any new directories.
! 732: Without this option,
! 733: .Nm
! 734: does not create any new files sitting in these new directories
! 735: added in the base repository since the last update of the working
! 736: copy, or since the last update with the
! 737: .Fl d
! 738: option.
! 739: .It Fl f
! 740: Force the use of the head revision if the specified
! 741: tag or date is not found.
! 742: .It Fl I Ar ign
! 743: Ignore files specified by
! 744: .Ar ign .
! 745: This option can be used several times on the command line.
! 746: To see all files, use the
! 747: .Fl I Ar !\&
! 748: specification.
! 749: .It Fl j Ar rev
! 750: Merge in changes made between current revision and
! 751: .Ar rev .
! 752: If two
! 753: .Fl j
! 754: options are specified, only merge the differences between the two
! 755: revisions of the branch.
! 756: This allows successive merges without having to resolve
! 757: already resolved conflicts again.
! 758: .It Fl k Ar mode
! 759: Specify the keyword substitution mode (is sticky).
1.35 jmc 760: .It Fl l
761: Limit the scope of the search to the local directory
762: only and disable recursive behaviour.
763: .It Fl P
764: Prune any directories that have become empty as a result of the update.
1.38 ! xsa 765: .It Fl p
! 766: Send the result of the update to standard output (avoids stickiness).
1.35 jmc 767: .It Fl R
768: Enable recursive behaviour.
769: This is the default.
1.38 ! xsa 770: .It Fl r Ar rev
! 771: Update from a particular revision or branch (is sticky).
! 772: .It Fl W Ar spec
! 773: Wrappers specification line.
1.35 jmc 774: .El
1.38 ! xsa 775: .Pp
! 776: By default, the
! 777: .Ic update
! 778: command does not create new directories; the
! 779: .Fl d
! 780: option must be used for that.
1.29 xsa 781: .Pp
782: For each file updated, a single letter prefix is given to
783: specify the state of the file.
784: The possible prefixes are as follows:
785: .Bl -tag -width "XXX"
786: .It \&?
787: The file is unknown to
788: .Nm .
789: .It A
790: The file has been added with the
791: .Ic add
792: command, but has not been committed to the repository with the
793: .Ic commit
794: command.
795: .It C
796: A merge, with a more recent version of the file, has been done,
797: but unresolved conflicts still remain.
798: .It M
799: The file has been locally modified; if a more recent version
800: is available, the merge has been done without conflict.
801: .It P
802: The same as
803: .Sq U ,
804: but, in client-server mode, only differences are sent to save network
805: resources.
806: .It R
807: The file has been removed with the
808: .Ic remove
809: command, but has not been committed to the repository with the
810: .Ic commit
811: command.
812: .It U
813: The file is up to date.
814: .El
1.13 jmc 815: .Pp
816: Aliases:
817: .Ic up ,
818: .Ic upd .
1.11 jmc 819: .It Ic version
1.3 jfb 820: Causes
821: .Nm
822: to print its version information.
1.14 jfb 823: If this command is issued within a local copy of a remote repository or
824: if either the
825: .Ev CVSROOT
826: environment variable or the
827: .Fl d
828: flag specify a remote repository,
1.3 jfb 829: .Nm
830: will also connect to the server and ask it to print its version information.
1.13 jmc 831: .Pp
832: Aliases:
833: .Ic ve ,
834: .Ic ver .
1.32 xsa 835: .It Xo Ic watch
836: .Ar on | off | add | remove
837: .Op Fl lR
838: .Op Fl a Ar action
839: .Op Ar file ...
840: .Xc
841: .Pp
842: The
843: .Ic watch
844: command switches a file from normal mode to
845: pseudo-lock mode as well as handling the notifications associated
846: with it.
847: Pseudo-lock mode means knowing who is editing a file:
848: for that,
849: .Nm
850: extracts the file in read-only mode.
851: Users must use the
852: .Ic edit
853: command to get the editing rights on the file.
854: .Pp
855: One of the following arguments to the
856: .Ic watch
857: command is mandatory: on, off, add, or remove.
858: .Ar on
859: switches the file into pseudo-lock mode;
860: .Ar off
861: switches it back to normal mode;
862: .Ar add
863: adds notifications for specific actions on the file;
864: .Ar remove
865: removes those notifications.
866: .Pp
867: The notifications are permanent.
868: They remain in place until the
869: .Ic watch remove
870: command is issued while the temporary notifications are
871: made available with the
872: .Ic edit
873: command.
874: .Pp
875: The
1.35 jmc 876: .Ic watch
877: command takes the following options:
878: .Bl -tag -width Ds -offset 3n
879: .It Fl a Ar action
880: Specify the permanent notification wanted for
1.32 xsa 881: .Ar add | remove :
882: .Pp
883: .Bl -tag -width "commitXX" -compact
884: .It Cm commit
1.35 jmc 885: Another user has committed changes to the file.
1.32 xsa 886: .It Cm edit
1.35 jmc 887: Another user is editing the file.
1.32 xsa 888: .It Cm unedit
1.35 jmc 889: Another user has finished editing the file.
1.32 xsa 890: .It Cm all
891: All of the above.
892: .It Cm none
893: No notification.
894: .El
895: .Pp
1.35 jmc 896: If no specification is requested using the
1.32 xsa 897: .Ar add
898: or
899: .Ar remove
900: arguments, it implies the
901: .Fl a Ar all
902: option.
1.35 jmc 903: .It Fl l
904: Limit the scope of the search to the local directory
905: only and disable recursive behaviour.
906: .It Fl R
907: Enable recursive behaviour.
908: This is the default.
909: .El
1.32 xsa 910: .It Xo Ic watchers
911: .Op Fl lR
912: .Op Ar file ...
913: .Xc
914: .Pp
915: The
916: .Ic watchers
917: command lists the users who asked for notifications as well as the
918: notifications details.
919: The possible notifications are as follows:
920: .Bl -tag -width "tcommitXX"
921: .It Cm commit
922: Permanent watch of a commit of a new version of a file.
923: .It Cm edit
924: Permanent watch of the start of file edition.
925: .It Cm tcommit
926: Temporary watch of a commit of new version of a file.
927: .It Cm tedit
928: Temporary watch of the start of file edition.
929: .It Cm tunedit
930: Temporary watch of the end of file edition.
931: .It Cm unedit
932: Permanent watch of the end of file edition.
933: .El
934: .Pp
935: The temporary watches are set using the
936: .Ic edit
937: command, until the
938: .Ic commit
939: or
940: .Ic unedit
1.35 jmc 941: command is issued on a file.
942: .Pp
943: The
944: .Ic watchers
945: command takes the following options:
946: .Bl -tag -width Ds -offset 3n
947: .It Fl l
948: Limit the scope of the search to the local directory
949: only and disable recursive behaviour.
950: .It Fl R
951: Enable recursive behaviour.
952: This is the default.
953: .El
1.1 jfb 954: .El
955: .Sh ENVIRONMENT
956: .Bl -tag -width CVS_CLIENT_LOG
1.8 jmc 957: .It Ev CVS_CLIENT_LOG
958: This variable enables logging of all communications between the client and
959: server when running in non-local mode.
960: If set, this environment variable must contain a base path from which two
961: paths will be generated by appending ".in" to the value for the server's
962: input and ".out" for the server's output.
1.1 jfb 963: .It Ev CVS_RSH
964: Name of the program to use when connecting to the server through a remote
965: shell.
966: The default is to use the
967: .Xr ssh 1
968: program.
969: .It Ev CVS_SERVER
970: If set, gives the name of the program to invoke as a
971: .Nm
972: server when using remote shell.
973: The default is to use `cvs'.
974: .It Ev CVSEDITOR
975: Name of the editor to use when editing commit messages.
1.8 jmc 976: Checked before
977: .Ev EDITOR
978: and
979: .Ev VISUAL .
980: .It Ev CVSROOT
981: When set, this variable should contain the string pointing to the root
982: directory of the CVS repository.
983: The contents of this variable are ignored when the
984: .Fl d
985: option is given or if `Root' files exist in the checked-out copy.
1.1 jfb 986: .It Ev EDITOR
1.9 jmc 987: Name of the editor to use when editing commit messages.
988: This is traditionally a line-oriented editor,
989: such as
990: .Xr ex 1 .
1.1 jfb 991: .It Ev VISUAL
1.9 jmc 992: Name of the editor to use when editing commit messages.
993: This is traditionally a screen-oriented editor,
994: such as
995: .Xr vi 1 .
1.8 jmc 996: .El
997: .Sh FILES
998: .Bl -tag -width Ds
999: .It Pa $HOME/.cvsrc
1000: File containing a list of implicit options to pass to certain commands.
1001: This file is read on startup unless the
1002: .Fl f
1003: option is specified.
1004: .It Pa $CVSROOT/CVSROOT
1005: Directory containing repository administrative files.
1006: .It Pa $CVSROOT/CVSROOT/loginfo
1007: File containing associations between modules and handlers for
1008: post-commit logging.
1.1 jfb 1009: .El
1010: .Sh SEE ALSO
1011: .Xr diff 1 ,
1.15 jmc 1012: .Xr gzip 1 ,
1.1 jfb 1013: .Xr patch 1 ,
1.8 jmc 1014: .Xr rcs 1 ,
1.16 jmc 1015: .Xr cvsrc 5 ,
1.35 jmc 1016: .Xr cvsintro 7 ,
1.1 jfb 1017: .Xr cvsd 8
1.8 jmc 1018: .Sh HISTORY
1019: The OpenCVS project is a BSD-licensed rewrite of the original
1020: Concurrent Versioning System written by Jean-Francois Brousseau.
1021: The original CVS code was written in large parts by Dick Grune,
1022: Brian Berliner and Jeff Polk.
1023: .Sh AUTHORS
1024: .An Jean-Francois Brousseau
1025: .An Vincent Labrecque
1026: .An Joris Vink
1.2 jfb 1027: .Sh CAVEATS
1028: This CVS implementation does not fully conform to the GNU CVS version.
1.3 jfb 1029: In some cases, this was done explicitly because GNU CVS has inconsistencies
1.2 jfb 1030: or ambiguous behaviour.
1.3 jfb 1031: Some things have also been left out or modified to enhance the overall
1032: security of the system.
1033: .Pp
1034: Among other things, support for the pserver connection mechanism has been
1035: dropped because of security issues with the authentication mechanism.