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