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