Annotation of src/usr.bin/cvs/cvs.1, Revision 1.40
1.40 ! xsa 1: .\" $OpenBSD: cvs.1,v 1.39 2005/02/03 22:10:14 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.
1.39 xsa 542: .It Xo Ic release
543: .Op Fl d
544: .Ar dir ...
545: .Xc
546: The
547: .Ic release
548: command indicates to
549: .Nm
550: that the working copy of a module is no longer in use and checks
551: that non archived modifications in the base repository do exist.
552: This command is not mandatory.
553: Local directories could always be removed without using it, but
554: in this case the handling of history information will no longer be
555: correct (see the
556: .Ic history
557: command).
558: .Pp
559: The
560: .Ic release
561: command takes the following options:
562: .Bl -tag -width Ds -offset 3n
563: .It Fl d Ar dir
564: Remove the directory
565: .Ar dir .
566: Be aware that this option silently removes any directories that have
567: been added to the local working copy without using the
568: .Ic add
569: command.
570: .El
571: .Pp
572: For each file not being synchronized with the base repository,
573: a single letter prefix is given to specify the state of the file.
574: The possible prefixes are as follows:
575: .Bl -tag -width "XXX"
576: .It \&?
577: The file is unknown to
578: .Nm
579: and is not in the list of files to ignore.
580: Any new directories which have not been added with the
581: .Ic add
582: command are silently ignored as well as their content.
583: .It A
584: The file has been added with the
585: .Ic add
586: command, but has not been committed to the repository with the
587: .Ic commit
588: command.
589: .It M
590: The file has been locally modified; a more recent version might
591: exist in the base repository.
592: .It R
593: The file has been removed with the
594: .Ic remove
595: command, but has not been committed to the repository with the
596: .Ic commit
597: command.
598: .It U
599: A more recent version of the file does exist but it is not
600: locally up to date.
601: .El
1.40 ! xsa 602: .Pp
! 603: Aliases:
! 604: .Ic re ,
! 605: .Ic rel .
1.18 xsa 606: .It Xo Ic remove
607: .Op Fl flR
608: .Op Ar file ...
609: .Xc
610: The
611: .Ic remove
612: command is used to inform
613: .Nm
614: that
615: .Ar file
616: is scheduled to be removed from the repository.
617: Files are not actually removed from the repository until the
618: .Ic commit
619: command has been run subsequently.
1.28 xsa 620: .Pp
621: The
1.35 jmc 622: .Ic remove
623: command takes the following options:
624: .Bl -tag -width Ds -offset 3n
625: .It Fl f
626: Force local file removal.
1.28 xsa 627: If this flag is not used, the file must be locally removed beforehand for
628: the command to be valid.
1.35 jmc 629: .It Fl l
630: Limit the scope of the search to the local directory
631: only and disable recursive behaviour.
632: .It Fl R
633: Enable recursive behaviour.
634: This is the default.
635: .El
1.18 xsa 636: .Pp
637: Aliases:
1.19 xsa 638: .Ic rm ,
639: .Ic delete .
1.13 jmc 640: .It Ic rlog
641: Print out history information for a module.
642: .It Ic rtag
643: Add a symbolic link to a module.
644: .It Ic server
645: Server mode.
1.25 xsa 646: .It Xo Ic status
647: .Op Fl lRv
648: .Op Ar file ...
649: .Xc
650: The
651: .Ic status
652: command is used to display the state of checked out files.
653: .Pp
654: The
1.35 jmc 655: .Ic status
656: command takes the following options:
657: .Bl -tag -width Ds -offset 3n
658: .It Fl l
659: Limit the scope of the search to the local directory
660: only and disable recursive behaviour.
661: .It Fl R
662: Enable recursive behaviour.
663: This is the default.
664: .It Fl v
665: Display symbolic tags for
666: .Ar file .
1.25 xsa 667: .Pp
1.35 jmc 668: The state may be one of the following:
669: .Bl -tag -width "Locally modified"
1.25 xsa 670: .It Cm Locally Added
671: The file has been added with the
672: .Ic add
673: command, but has not been committed to the repository with the
674: .Ic commit
675: command.
676: .It Cm Locally Modified
1.35 jmc 677: The file is up to date, but has been locally modified.
1.25 xsa 678: .It Cm Locally Removed
679: The file has been removed with the
680: .Ic remove
681: command, but has not been committed to the repository with the
682: .Ic commit
683: command.
684: .It Cm Needs Checkout
685: The file has not been modified; a new version is available.
686: .It Cm Needs Merge
687: The file has been modified and a newer version is available.
688: .It Cm Needs Patch
689: Same as
690: .Ic Needs Checkout
691: but, in client-server mode, only the differences are sent to save
692: network resources.
693: .It Cm Unresolved Conflict
694: A merge has been done, but unresolved conflicts still remain.
695: .It Cm Up-to-date
696: The file is up to date.
697: .El
1.35 jmc 698: .El
1.13 jmc 699: .Pp
700: Aliases:
701: .Ic st ,
702: .Ic stat .
1.21 jmc 703: .It Xo Ic tag
1.35 jmc 704: .Op Fl bdlR
1.21 jmc 705: .Op Fl r Ar old_tag
706: .Op Ar symbolic_tag
707: .Op Ar file ...
708: .Xc
709: .Pp
710: Add a symbolic tag to a checked out version of
711: .Ar file .
712: .Pp
713: The
1.35 jmc 714: .Ic tag
715: command takes the following options:
716: .Bl -tag -width Ds -offset 3n
717: .It Fl b
718: Specify a branch tag.
719: .It Fl d
720: Delete tag.
721: .It Fl l
722: Limit the scope of the search to the local directory
723: only and disable recursive behaviour.
724: .It Fl R
725: Enable recursive behaviour.
726: This is the default.
727: .It Fl r Ar old_tag
1.21 jmc 728: .Nm
729: will only tag the files with
730: .Ar symbolic_tag
731: if they are already tagged with
732: .Ar old_tag .
733: When done, it will remove the old tag
734: leaving only the new tag behind on exactly the same files.
1.35 jmc 735: .El
1.13 jmc 736: .Pp
737: Aliases:
738: .Ic ta ,
739: .Ic freeze .
1.30 xsa 740: .It Xo Ic unedit Op Fl lR
741: .Op Ar file ...
742: .Xc
743: .Pp
744: The
745: .Ic unedit
746: command is used to give up an edition on a file and thus cancel
747: the wanted temporary notifications.
748: If the file has been modified since the
1.13 jmc 749: .Ic edit
1.30 xsa 750: command has been issued,
751: .Nm
752: will ask if you want to go back to the previous version, and lose the
753: modifications done on the file, or stay in edition mode on it.
754: .Pp
755: The
1.35 jmc 756: .Ic unedit
757: command takes the following options:
758: .Bl -tag -width Ds -offset 3n
759: .It Fl l
760: Limit the scope of the search to the local directory
761: only and disable recursive behaviour.
762: .It Fl R
763: Enable recursive behaviour.
764: This is the default.
765: .El
1.11 jmc 766: .It Xo Ic update
1.38 xsa 767: .Op Fl AdflPpR
768: .Oo Fl D Ar date \*(Ba
769: .Fl r Ar rev Oc
770: .Op Fl I Ar ign
771: .Op Fl j Ar rev
772: .Op Fl k Ar mode
773: .Op Fl W Ar spec
1.4 jfb 774: .Op Ar file ...
1.3 jfb 775: .Xc
1.7 jfb 776: .Pp
1.3 jfb 777: The
1.11 jmc 778: .Ic update
1.17 david 779: command is used to merge any of the changes that have occurred on the remote
1.3 jfb 780: repository into the local one where the command was run.
781: .Pp
782: The
1.35 jmc 783: .Ic update
784: command takes the following options:
785: .Bl -tag -width Ds -offset 3n
786: .It Fl A
787: Reset any sticky tags, dates, or kopts that have been set on the tree.
1.38 xsa 788: .It Fl D Ar date
789: Update as of the latest revision no later than
790: .Ar date
791: (is sticky).
792: .It Fl d
793: Create any new directories.
794: Without this option,
795: .Nm
796: does not create any new files sitting in these new directories
797: added in the base repository since the last update of the working
798: copy, or since the last update with the
799: .Fl d
800: option.
801: .It Fl f
802: Force the use of the head revision if the specified
803: tag or date is not found.
804: .It Fl I Ar ign
805: Ignore files specified by
806: .Ar ign .
807: This option can be used several times on the command line.
808: To see all files, use the
809: .Fl I Ar !\&
810: specification.
811: .It Fl j Ar rev
812: Merge in changes made between current revision and
813: .Ar rev .
814: If two
815: .Fl j
816: options are specified, only merge the differences between the two
817: revisions of the branch.
818: This allows successive merges without having to resolve
819: already resolved conflicts again.
820: .It Fl k Ar mode
821: Specify the keyword substitution mode (is sticky).
1.35 jmc 822: .It Fl l
823: Limit the scope of the search to the local directory
824: only and disable recursive behaviour.
825: .It Fl P
826: Prune any directories that have become empty as a result of the update.
1.38 xsa 827: .It Fl p
828: Send the result of the update to standard output (avoids stickiness).
1.35 jmc 829: .It Fl R
830: Enable recursive behaviour.
831: This is the default.
1.38 xsa 832: .It Fl r Ar rev
833: Update from a particular revision or branch (is sticky).
834: .It Fl W Ar spec
835: Wrappers specification line.
1.35 jmc 836: .El
1.38 xsa 837: .Pp
838: By default, the
839: .Ic update
840: command does not create new directories; the
841: .Fl d
842: option must be used for that.
1.29 xsa 843: .Pp
844: For each file updated, a single letter prefix is given to
845: specify the state of the file.
846: The possible prefixes are as follows:
847: .Bl -tag -width "XXX"
848: .It \&?
849: The file is unknown to
850: .Nm .
851: .It A
852: The file has been added with the
853: .Ic add
854: command, but has not been committed to the repository with the
855: .Ic commit
856: command.
857: .It C
858: A merge, with a more recent version of the file, has been done,
859: but unresolved conflicts still remain.
860: .It M
861: The file has been locally modified; if a more recent version
862: is available, the merge has been done without conflict.
863: .It P
864: The same as
865: .Sq U ,
866: but, in client-server mode, only differences are sent to save network
867: resources.
868: .It R
869: The file has been removed with the
870: .Ic remove
871: command, but has not been committed to the repository with the
872: .Ic commit
873: command.
874: .It U
875: The file is up to date.
876: .El
1.13 jmc 877: .Pp
878: Aliases:
879: .Ic up ,
880: .Ic upd .
1.11 jmc 881: .It Ic version
1.3 jfb 882: Causes
883: .Nm
884: to print its version information.
1.14 jfb 885: If this command is issued within a local copy of a remote repository or
886: if either the
887: .Ev CVSROOT
888: environment variable or the
889: .Fl d
890: flag specify a remote repository,
1.3 jfb 891: .Nm
892: will also connect to the server and ask it to print its version information.
1.13 jmc 893: .Pp
894: Aliases:
895: .Ic ve ,
896: .Ic ver .
1.32 xsa 897: .It Xo Ic watch
898: .Ar on | off | add | remove
899: .Op Fl lR
900: .Op Fl a Ar action
901: .Op Ar file ...
902: .Xc
903: .Pp
904: The
905: .Ic watch
906: command switches a file from normal mode to
907: pseudo-lock mode as well as handling the notifications associated
908: with it.
909: Pseudo-lock mode means knowing who is editing a file:
910: for that,
911: .Nm
912: extracts the file in read-only mode.
913: Users must use the
914: .Ic edit
915: command to get the editing rights on the file.
916: .Pp
917: One of the following arguments to the
918: .Ic watch
919: command is mandatory: on, off, add, or remove.
920: .Ar on
921: switches the file into pseudo-lock mode;
922: .Ar off
923: switches it back to normal mode;
924: .Ar add
925: adds notifications for specific actions on the file;
926: .Ar remove
927: removes those notifications.
928: .Pp
929: The notifications are permanent.
930: They remain in place until the
931: .Ic watch remove
932: command is issued while the temporary notifications are
933: made available with the
934: .Ic edit
935: command.
936: .Pp
937: The
1.35 jmc 938: .Ic watch
939: command takes the following options:
940: .Bl -tag -width Ds -offset 3n
941: .It Fl a Ar action
942: Specify the permanent notification wanted for
1.32 xsa 943: .Ar add | remove :
944: .Pp
945: .Bl -tag -width "commitXX" -compact
946: .It Cm commit
1.35 jmc 947: Another user has committed changes to the file.
1.32 xsa 948: .It Cm edit
1.35 jmc 949: Another user is editing the file.
1.32 xsa 950: .It Cm unedit
1.35 jmc 951: Another user has finished editing the file.
1.32 xsa 952: .It Cm all
953: All of the above.
954: .It Cm none
955: No notification.
956: .El
957: .Pp
1.35 jmc 958: If no specification is requested using the
1.32 xsa 959: .Ar add
960: or
961: .Ar remove
962: arguments, it implies the
963: .Fl a Ar all
964: option.
1.35 jmc 965: .It Fl l
966: Limit the scope of the search to the local directory
967: only and disable recursive behaviour.
968: .It Fl R
969: Enable recursive behaviour.
970: This is the default.
971: .El
1.32 xsa 972: .It Xo Ic watchers
973: .Op Fl lR
974: .Op Ar file ...
975: .Xc
976: .Pp
977: The
978: .Ic watchers
979: command lists the users who asked for notifications as well as the
980: notifications details.
981: The possible notifications are as follows:
982: .Bl -tag -width "tcommitXX"
983: .It Cm commit
984: Permanent watch of a commit of a new version of a file.
985: .It Cm edit
986: Permanent watch of the start of file edition.
987: .It Cm tcommit
988: Temporary watch of a commit of new version of a file.
989: .It Cm tedit
990: Temporary watch of the start of file edition.
991: .It Cm tunedit
992: Temporary watch of the end of file edition.
993: .It Cm unedit
994: Permanent watch of the end of file edition.
995: .El
996: .Pp
997: The temporary watches are set using the
998: .Ic edit
999: command, until the
1000: .Ic commit
1001: or
1002: .Ic unedit
1.35 jmc 1003: command is issued on a file.
1004: .Pp
1005: The
1006: .Ic watchers
1007: command takes the following options:
1008: .Bl -tag -width Ds -offset 3n
1009: .It Fl l
1010: Limit the scope of the search to the local directory
1011: only and disable recursive behaviour.
1012: .It Fl R
1013: Enable recursive behaviour.
1014: This is the default.
1015: .El
1.1 jfb 1016: .El
1017: .Sh ENVIRONMENT
1018: .Bl -tag -width CVS_CLIENT_LOG
1.8 jmc 1019: .It Ev CVS_CLIENT_LOG
1020: This variable enables logging of all communications between the client and
1021: server when running in non-local mode.
1022: If set, this environment variable must contain a base path from which two
1023: paths will be generated by appending ".in" to the value for the server's
1024: input and ".out" for the server's output.
1.1 jfb 1025: .It Ev CVS_RSH
1026: Name of the program to use when connecting to the server through a remote
1027: shell.
1028: The default is to use the
1029: .Xr ssh 1
1030: program.
1031: .It Ev CVS_SERVER
1032: If set, gives the name of the program to invoke as a
1033: .Nm
1034: server when using remote shell.
1035: The default is to use `cvs'.
1036: .It Ev CVSEDITOR
1037: Name of the editor to use when editing commit messages.
1.8 jmc 1038: Checked before
1039: .Ev EDITOR
1040: and
1041: .Ev VISUAL .
1042: .It Ev CVSROOT
1043: When set, this variable should contain the string pointing to the root
1044: directory of the CVS repository.
1045: The contents of this variable are ignored when the
1046: .Fl d
1047: option is given or if `Root' files exist in the checked-out copy.
1.1 jfb 1048: .It Ev EDITOR
1.9 jmc 1049: Name of the editor to use when editing commit messages.
1050: This is traditionally a line-oriented editor,
1051: such as
1052: .Xr ex 1 .
1.1 jfb 1053: .It Ev VISUAL
1.9 jmc 1054: Name of the editor to use when editing commit messages.
1055: This is traditionally a screen-oriented editor,
1056: such as
1057: .Xr vi 1 .
1.8 jmc 1058: .El
1059: .Sh FILES
1060: .Bl -tag -width Ds
1061: .It Pa $HOME/.cvsrc
1062: File containing a list of implicit options to pass to certain commands.
1063: This file is read on startup unless the
1064: .Fl f
1065: option is specified.
1066: .It Pa $CVSROOT/CVSROOT
1067: Directory containing repository administrative files.
1068: .It Pa $CVSROOT/CVSROOT/loginfo
1069: File containing associations between modules and handlers for
1070: post-commit logging.
1.1 jfb 1071: .El
1072: .Sh SEE ALSO
1073: .Xr diff 1 ,
1.15 jmc 1074: .Xr gzip 1 ,
1.1 jfb 1075: .Xr patch 1 ,
1.8 jmc 1076: .Xr rcs 1 ,
1.16 jmc 1077: .Xr cvsrc 5 ,
1.35 jmc 1078: .Xr cvsintro 7 ,
1.1 jfb 1079: .Xr cvsd 8
1.8 jmc 1080: .Sh HISTORY
1081: The OpenCVS project is a BSD-licensed rewrite of the original
1082: Concurrent Versioning System written by Jean-Francois Brousseau.
1083: The original CVS code was written in large parts by Dick Grune,
1084: Brian Berliner and Jeff Polk.
1085: .Sh AUTHORS
1086: .An Jean-Francois Brousseau
1087: .An Vincent Labrecque
1088: .An Joris Vink
1.2 jfb 1089: .Sh CAVEATS
1090: This CVS implementation does not fully conform to the GNU CVS version.
1.3 jfb 1091: In some cases, this was done explicitly because GNU CVS has inconsistencies
1.2 jfb 1092: or ambiguous behaviour.
1.3 jfb 1093: Some things have also been left out or modified to enhance the overall
1094: security of the system.
1095: .Pp
1096: Among other things, support for the pserver connection mechanism has been
1097: dropped because of security issues with the authentication mechanism.