Annotation of src/usr.bin/cvs/cvs.1, Revision 1.52
1.52 ! xsa 1: .\" $OpenBSD: cvs.1,v 1.51 2005/02/16 13:33:02 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
214: Substitue 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.24 jfb 435: .It Xo Ic diff Op Fl cilNpu
1.3 jfb 436: .Op Fl D Ar date
437: .Op Fl r Ar rev
1.4 jfb 438: .Op Ar file ...
1.3 jfb 439: .Xc
1.7 jfb 440: .Pp
1.3 jfb 441: The
1.11 jmc 442: .Ic diff
1.3 jfb 443: command is very similar to the
444: .Xr diff 1
1.5 jfb 445: program, except that the differential comparisons that it generates are
1.3 jfb 446: between local or remote revisions of files stored in the CVS repository.
1.13 jmc 447: .Pp
448: Aliases:
449: .Ic di ,
450: .Ic dif .
1.30 xsa 451: .It Xo Ic edit Op Fl lR
452: .Op Fl a Ar action
453: .Op Ar file ...
454: .Xc
455: .Pp
456: The
457: .Ic edit
1.35 jmc 458: command is used to make a file that is being watched
459: (and therefore read-only)
1.30 xsa 460: readable and writable and to inform others that you are planning to edit it.
461: Notifications terminate when the
462: .Ic commit
463: command is issued.
464: Editing rights on the file can be given up using the
465: .Ic unedit
1.35 jmc 466: command, which terminates the temporary notifications.
1.30 xsa 467: .Pp
468: The
1.35 jmc 469: .Ic edit
470: command takes the following options:
471: .Bl -tag -width Ds -offset 3n
472: .It Fl a Ar action
473: Specify the temporary notification wanted:
474: .Pp
475: .Bl -tag -width "commitXX" -compact
1.30 xsa 476: .It Cm commit
1.35 jmc 477: Another user has committed changes to the file.
1.30 xsa 478: .It Cm edit
479: Another user has issued the
480: .Ic edit
1.35 jmc 481: command on the file.
1.30 xsa 482: .It Cm unedit
483: Another user has issued the
484: .Ic unedit
1.35 jmc 485: command on the file.
1.30 xsa 486: .It Cm all
487: All of the above.
488: .It Cm none
489: None of the above.
490: .El
491: .Pp
492: The
493: .Fl a
494: flag may appear more than once, or not at all.
495: If omitted, the action defaults to
1.31 jmc 496: .Cm all .
1.35 jmc 497: .It Fl l
498: Limit the scope of the search to the local directory
499: only and disable recursive behaviour.
500: .It Fl R
501: Enable recursive behaviour.
502: This is the default.
503: .El
1.33 xsa 504: .It Xo Ic editors
505: .Op Fl lR
1.34 xsa 506: .Op Ar file ...
1.33 xsa 507: .Xc
508: .Pp
509: The
510: .Ic editors
511: command lists the users with edition rights on a file.
512: For that, pseudo-lock mode must be enabled (see the
513: .Ic watch
514: command).
515: The e-mail address of the user editing the file, the timestamp
516: when the edition first started, the host from where the edition
517: has been requested and the path to the edited file are listed.
518: .Pp
519: The
1.35 jmc 520: .Ic editors
521: command takes the following options:
522: .Bl -tag -width Ds -offset 3n
523: .It Fl l
524: Limit the scope of the search to the local directory
525: only and disable recursive behaviour.
526: .It Fl R
527: Enable recursive behaviour.
528: This is the default.
529: .El
1.36 xsa 530: .It Xo Ic export
531: .Op Fl flNnR
532: .Op Fl d Ar dir
533: .Op Fl k Ar mode
534: .Fl D Ar date \*(Ba
535: .Fl r Ar rev
536: .Ar module ...
537: .Xc
538: .Pp
539: The
540: .Ic export
541: command extracts a copy of
542: .Ar module
543: without including the directories used for management by
544: .Nm .
545: This eases production of a software release.
546: A date or a revision must be specified for the command to be valid,
547: which ensures that later extractions can be reproduced with the same
548: options as the release.
549: .Pp
550: The checked out module's files will be placed in a directory
551: bearing the same name as the checked out module, by default.
552: .Pp
553: The
554: .Ic export
555: command takes the following options:
556: .Bl -tag -width Ds -offset 3n
557: .It Fl D Ar date
558: Export as of the latest revision no later than
559: .Ar date .
560: .It Fl d Ar dir
561: Export in directory
562: .Ar dir
563: instead of the directory bearing the same name as the
564: .Ar module .
565: .It Fl f
566: Force the use of the head revision if the specified
567: tag or date is not found.
568: This can be used in combination with
569: .Fl D
570: or
571: .Fl r
572: to ensure that the
573: .Ic export
574: command is valid.
575: .It Fl k Ar mode
576: Specify the keyword substitution mode: the
577: .Fl k Ar v
578: option is often used to avoid substitution of keywords during
579: a release cycle.
580: However, be aware that it does not handle an export containing
581: binary files correctly.
582: .It Fl l
583: Limit the scope of the search to the local directory
584: only and disable recursive behaviour.
585: .It Fl N
586: If used in conjunction with the
587: .Fl d
588: option, files are placed in local directory
589: .Ar module ,
590: located in directory
591: .Ar dir .
592: .It Fl n
593: Do not execute programs listed in the
594: .Pa CVSROOT/modules
595: file.
596: .It Fl R
597: Enable recursive behaviour.
598: This is the default.
599: .It Fl r Ar rev
600: Export from a particular symbolic or numerical revision.
601: .El
1.13 jmc 602: .Pp
603: Aliases:
604: .Ic ex ,
605: .Ic exp .
1.49 xsa 606: .It Xo Ic history
607: .Op Fl aceloTw
608: .Op Fl b Ar str
609: .Op Fl D Ar date
610: .Op Fl f Ar file
611: .Op Fl m Ar module
612: .Op Fl n Ar module
613: .Op Fl p Ar path
614: .Op Fl r Ar rev
615: .Op Fl t Ar tag
616: .Op Fl u Ar user
617: .Op Fl x Ar ACEFGMORTUW
618: .Op Fl z Ar tz
619: .Op Ar file ...
620: .Xc
621: .Pp
622: The
623: .Ic history
624: command is used to display the history of actions done in the
625: base repository.
626: This functionality is only available if the
1.50 xsa 627: .Pa CVSROOT/history
1.49 xsa 628: file has been created.
629: Only the
630: .Ic checkout ,
631: .Ic commit ,
632: .Ic export ,
633: .Ic release ,
634: .Ic rtag ,
635: and
636: .Ic update
637: commands are logged into this file.
638: .Pp
639: The
640: .Ic history
641: command takes the following options:
642: .Bl -tag -width Ds -offset 3n
643: .It Fl a
644: Display records for all users.
645: By default, only records from the user issuing the
646: .Ic history
647: command are displayed.
648: .It Fl b Ar str
649: Display everything back to a record containing the string
650: .Ar str
651: in either the module name, the file name, or the repository path.
652: .It Fl c
653: Display the archived files
654: .Pf ( Ic commit
655: command).
656: .It Fl D Ar date
657: Report no later than
658: .Ar date .
659: .It Fl e
660: Select all records (same as
661: .Fl x
662: with all types).
663: .It Fl f Ar file
664: Display records related to
665: .Ar file .
666: .It Fl l
667: Show last checkouts of modules with the
668: .Ic checkout
669: command.
670: .It Fl m Ar module
671: Look for the
672: .Ar module
673: (can be used several times).
674: .It Fl n Ar module
675: Search into the
676: .Ar module .
677: .It Fl o
678: Report on modules checked out by users.
679: .It Fl p Ar path
680: Display records from the base repository being in the directory
681: specified by the
682: .Ar path .
683: .It Fl r Ar rev
684: Report for a particular revision (checks in the RCS file).
685: .It Fl t Ar tag
686: Report since tag record placed in the
1.50 xsa 687: .Pa CVSROOT/history
1.49 xsa 688: file by any user.
689: .It Fl T
690: Report on all tags.
691: .It Fl u Ar user
692: Report for a specified
693: .Ar user .
694: Can be used several times to match many users.
695: .It Fl w
696: Check that records match the current working directory.
697: .It Fl x Ar ACEFGMORTUW
698: Extract by a specific record type specified by a single letter.
699: They can be used in combination.
700: The available types are as follows:
701: .Bl -tag -width "XXX"
702: .It A
703: A file has been added with the
704: .Ic add
705: command.
706: .It C
707: A merge has been done, but unresolved conflicts still remain.
708: .It E
709: Export.
710: .It F
711: Release.
712: .It G
713: A merge has been done without conflict.
714: .It M
715: A file has been modified (using the
716: .Ic commit
717: command).
718: .It O
719: Checkout.
720: .It R
721: A file has been removed with the
722: .Ic remove
723: command.
724: .It T
725: Rtag.
726: .It U
727: Normal update.
728: .It W
729: The file has been deleted from the directory because it does not
730: exist anymore in the base repository.
731: .El
732: .It Fl z Ar tz
733: Display records with time synchronized with the
734: .Ar timezone
735: passed as argument.
736: .El
737: .Pp
738: All records have the following five first columns:
739: .Pp
740: .Bl -dash -compact
741: .It
742: The record type (the
743: .Fl x
744: option).
745: .It
746: The date of the action.
747: .It
748: The time of the action.
749: .It
750: The time zone.
751: .It
752: The user who made the action.
753: .El
754: .Pp
1.51 xsa 755: The other columns vary depending on the command issued:
756: .Pp
757: For records coming from the
758: .Ic rtag
759: command, the additional columns are as follows:
760: .Bd -literal -offset indent
761: <module> [<tag>:<argument>] {<working directory>}
762: .Ed
763: .Pp
764: For records coming from the
765: .Ic checkout
766: and
767: .Ic export
768: commands, the additional columns are as follows:
769: .Bd -literal -offset indent
770: <request> <repository> =<module>= <working directory>
771: .Ed
772: .Pp
773: For records coming from the
774: .Ic release
775: command, the additional columns are as follows:
776: .Bd -literal -offset indent
777: =<module>= <working directory>
778: .Ed
779: .Pp
780: For records coming from the
781: .Ic commit
782: and
783: .Ic update
784: commands, the additional columns are as follows:
785: .Bd -literal -offset indent
786: <version> <file> <module> == <working directory>
787: .Ed
1.13 jmc 788: .Pp
789: Aliases:
790: .Ic hi ,
791: .Ic his .
1.22 jmc 792: .It Xo Ic import
793: .Op Fl b Ar branch
794: .Op Fl m Ar msg
795: .Ar repository
796: .Ar vendortag
797: .Ar releasetag
798: .Xc
799: .Pp
1.13 jmc 800: Import sources into CVS using vendor branches.
1.22 jmc 801: .Pp
802: At least three arguments are required:
803: .Ar repository
804: specifies the location of the sources to be imported;
805: .Ar vendortag
806: is a tag for the entire branch;
807: .Ar releasetag
808: is used to identify the files you created with
1.35 jmc 809: .Ic cvs import .
810: .Pp
811: The
812: .Ic import
813: command takes the following options:
814: .Bl -tag -width Ds -offset 3n
815: .It Fl b Ar branch
816: Specify the first-level branch number.
817: .It Fl m Ar msg
818: Specify the log message to send.
819: .El
1.13 jmc 820: .Pp
821: Aliases:
822: .Ic im ,
823: .Ic imp .
824: .It Ic init
825: Create a CVS repository if it doesn't exist.
826: .It Ic kserver
827: Start a Kerberos authentication server.
1.52 ! xsa 828: .It Xo Ic log
! 829: .Op Fl bhlNRt
! 830: .Op Fl d Ar dates
! 831: .Op Fl r Ar revs
! 832: .Op Fl s Ar state
! 833: .Op Fl w Ar users
! 834: .Op Ar file ...
! 835: .Xc
! 836: .Pp
! 837: The
! 838: .Ic log
! 839: command displays information on a
! 840: .Ar file
! 841: such as its different revisions, description, different tags,
! 842: as well as the comments, dates, and authors of these revisions.
! 843: By default, the
! 844: .Ic log
! 845: command displays all the available information; the options are only
! 846: used to restrict the displayed information.
! 847: .Pp
! 848: The
! 849: .Ic log
! 850: command takes the following options:
! 851: .Bl -tag -width Ds -offset 3n
! 852: .It Fl b
! 853: List revisions of the default branch only.
! 854: .It Fl d Ar dates
! 855: Specify revisions with dates matching the specification.
! 856: The specification might be as follows:
! 857: .Bl -tag -width "XXXXXXXXXXXXXX"
! 858: .It D1>D2 or D2>D1
! 859: Select all revisions between
! 860: .Ar \&D1
! 861: and
! 862: .Ar D2 .
! 863: .It <D or D>
! 864: Select all revisions before
! 865: .Ar D .
! 866: .It >D or D<
! 867: Select all revisions after
! 868: .Ar D .
! 869: .It D
! 870: Select the latest revision before or equal to
! 871: .Ar D .
! 872: .El
! 873: .Pp
! 874: The
! 875: .Sq \*(Gt
! 876: and
! 877: .Sq \*(Lt
! 878: characters can be followed by the
! 879: .Sq =
! 880: character to imply an inclusive specification.
! 881: Several specifications can be used by separating them with the
! 882: .Sq \&;
! 883: character.
! 884: .It Fl h
! 885: Print header only.
! 886: .It Fl l
! 887: Limit the scope of the search to the local directory only.
! 888: .It Fl N
! 889: Do not list tags.
! 890: .It Fl R
! 891: Print name of RCS file only.
! 892: .It Fl r Ar revs
! 893: Specify revision(s) to list:
! 894: .Bl -tag -width "XXXXXXXXXXXXXXX"
! 895: .It REV1,REV2,...,
! 896: A list of revisions is specified by separating names or numbers
! 897: of revisions by the
! 898: .Sq \&,
! 899: character.
! 900: .It REV1:REV2
! 901: List all revisions between
! 902: .Ar REV1
! 903: and
! 904: .Ar REV2
! 905: (they must be on the same branch).
! 906: .It :REV
! 907: List all revisions since the beginning of the branch until
! 908: .Ar REV
! 909: included.
! 910: .It REV:
! 911: List all revisions of the branch beginning with
! 912: .Ar REV .
! 913: .It BRANCH
! 914: List all revisions of a branch.
! 915: .It BRANCH.
! 916: List the latest revision of the branch
! 917: .Ar BRANCH .
! 918: .It BRANCH1:BRANCH2
! 919: List all revisions of branches between
! 920: .Ar BRANCH1
! 921: and
! 922: .Ar BRANCH2 .
! 923: .El
! 924: .Pp
! 925: Without argument, the
! 926: .Fl r
! 927: option means the latest revision of the default branch.
! 928: .It Fl s Ar state
! 929: List revisions of the specified
! 930: .Ar state
! 931: only.
! 932: Several states can be listed by separating them with the
! 933: .Sq \&,
! 934: character.
! 935: .It Fl t
! 936: Print header and description only.
! 937: .It Fl w Ar users
! 938: Do not list revisions made by specified
! 939: .Ar users .
! 940: Usernames should be separated by the
! 941: .Sq \&,
! 942: character.
! 943: .El
1.13 jmc 944: .Pp
945: Aliases:
946: .Ic lo .
947: .It Ic login
1.35 jmc 948: Prompt for a password for an authenticating server.
1.13 jmc 949: .It Ic logout
1.35 jmc 950: Remove an entry in
951: .Pa .cvspass
952: for a remote repository.
1.13 jmc 953: .It Ic rdiff
954: Create
955: .Xr patch 1
956: format diffs between releases.
1.39 xsa 957: .It Xo Ic release
958: .Op Fl d
959: .Ar dir ...
960: .Xc
961: The
962: .Ic release
963: command indicates to
964: .Nm
965: that the working copy of a module is no longer in use and checks
966: that non archived modifications in the base repository do exist.
967: This command is not mandatory.
968: Local directories could always be removed without using it, but
969: in this case the handling of history information will no longer be
970: correct (see the
971: .Ic history
972: command).
973: .Pp
974: The
975: .Ic release
976: command takes the following options:
977: .Bl -tag -width Ds -offset 3n
978: .It Fl d Ar dir
979: Remove the directory
980: .Ar dir .
981: Be aware that this option silently removes any directories that have
982: been added to the local working copy without using the
983: .Ic add
984: command.
985: .El
986: .Pp
987: For each file not being synchronized with the base repository,
988: a single letter prefix is given to specify the state of the file.
989: The possible prefixes are as follows:
990: .Bl -tag -width "XXX"
991: .It \&?
992: The file is unknown to
993: .Nm
994: and is not in the list of files to ignore.
995: Any new directories which have not been added with the
996: .Ic add
997: command are silently ignored as well as their content.
998: .It A
999: The file has been added with the
1000: .Ic add
1001: command, but has not been committed to the repository with the
1002: .Ic commit
1003: command.
1004: .It M
1005: The file has been locally modified; a more recent version might
1006: exist in the base repository.
1007: .It R
1008: The file has been removed with the
1009: .Ic remove
1010: command, but has not been committed to the repository with the
1011: .Ic commit
1012: command.
1013: .It U
1014: A more recent version of the file does exist but it is not
1015: locally up to date.
1016: .El
1.40 xsa 1017: .Pp
1018: Aliases:
1019: .Ic re ,
1020: .Ic rel .
1.18 xsa 1021: .It Xo Ic remove
1022: .Op Fl flR
1023: .Op Ar file ...
1024: .Xc
1025: The
1026: .Ic remove
1027: command is used to inform
1028: .Nm
1029: that
1030: .Ar file
1031: is scheduled to be removed from the repository.
1032: Files are not actually removed from the repository until the
1033: .Ic commit
1034: command has been run subsequently.
1.28 xsa 1035: .Pp
1036: The
1.35 jmc 1037: .Ic remove
1038: command takes the following options:
1039: .Bl -tag -width Ds -offset 3n
1040: .It Fl f
1041: Force local file removal.
1.28 xsa 1042: If this flag is not used, the file must be locally removed beforehand for
1043: the command to be valid.
1.35 jmc 1044: .It Fl l
1045: Limit the scope of the search to the local directory
1046: only and disable recursive behaviour.
1047: .It Fl R
1048: Enable recursive behaviour.
1049: This is the default.
1050: .El
1.18 xsa 1051: .Pp
1052: Aliases:
1.19 xsa 1053: .Ic rm ,
1054: .Ic delete .
1.13 jmc 1055: .It Ic rlog
1056: Print out history information for a module.
1057: .It Ic rtag
1058: Add a symbolic link to a module.
1059: .It Ic server
1060: Server mode.
1.25 xsa 1061: .It Xo Ic status
1062: .Op Fl lRv
1063: .Op Ar file ...
1064: .Xc
1065: The
1066: .Ic status
1067: command is used to display the state of checked out files.
1068: .Pp
1069: The
1.35 jmc 1070: .Ic status
1071: command takes the following options:
1072: .Bl -tag -width Ds -offset 3n
1073: .It Fl l
1074: Limit the scope of the search to the local directory
1075: only and disable recursive behaviour.
1076: .It Fl R
1077: Enable recursive behaviour.
1078: This is the default.
1079: .It Fl v
1080: Display symbolic tags for
1081: .Ar file .
1.25 xsa 1082: .Pp
1.35 jmc 1083: The state may be one of the following:
1084: .Bl -tag -width "Locally modified"
1.25 xsa 1085: .It Cm Locally Added
1086: The file has been added with the
1087: .Ic add
1088: command, but has not been committed to the repository with the
1089: .Ic commit
1090: command.
1091: .It Cm Locally Modified
1.35 jmc 1092: The file is up to date, but has been locally modified.
1.25 xsa 1093: .It Cm Locally Removed
1094: The file has been removed with the
1095: .Ic remove
1096: command, but has not been committed to the repository with the
1097: .Ic commit
1098: command.
1099: .It Cm Needs Checkout
1100: The file has not been modified; a new version is available.
1101: .It Cm Needs Merge
1102: The file has been modified and a newer version is available.
1103: .It Cm Needs Patch
1104: Same as
1105: .Ic Needs Checkout
1106: but, in client-server mode, only the differences are sent to save
1107: network resources.
1108: .It Cm Unresolved Conflict
1109: A merge has been done, but unresolved conflicts still remain.
1110: .It Cm Up-to-date
1111: The file is up to date.
1112: .El
1.35 jmc 1113: .El
1.13 jmc 1114: .Pp
1115: Aliases:
1116: .Ic st ,
1117: .Ic stat .
1.21 jmc 1118: .It Xo Ic tag
1.35 jmc 1119: .Op Fl bdlR
1.21 jmc 1120: .Op Fl r Ar old_tag
1121: .Op Ar symbolic_tag
1122: .Op Ar file ...
1123: .Xc
1124: .Pp
1125: Add a symbolic tag to a checked out version of
1126: .Ar file .
1127: .Pp
1128: The
1.35 jmc 1129: .Ic tag
1130: command takes the following options:
1131: .Bl -tag -width Ds -offset 3n
1132: .It Fl b
1133: Specify a branch tag.
1134: .It Fl d
1135: Delete tag.
1136: .It Fl l
1137: Limit the scope of the search to the local directory
1138: only and disable recursive behaviour.
1139: .It Fl R
1140: Enable recursive behaviour.
1141: This is the default.
1142: .It Fl r Ar old_tag
1.21 jmc 1143: .Nm
1144: will only tag the files with
1145: .Ar symbolic_tag
1146: if they are already tagged with
1147: .Ar old_tag .
1148: When done, it will remove the old tag
1149: leaving only the new tag behind on exactly the same files.
1.35 jmc 1150: .El
1.13 jmc 1151: .Pp
1152: Aliases:
1153: .Ic ta ,
1154: .Ic freeze .
1.30 xsa 1155: .It Xo Ic unedit Op Fl lR
1156: .Op Ar file ...
1157: .Xc
1158: .Pp
1159: The
1160: .Ic unedit
1161: command is used to give up an edition on a file and thus cancel
1162: the wanted temporary notifications.
1163: If the file has been modified since the
1.13 jmc 1164: .Ic edit
1.30 xsa 1165: command has been issued,
1166: .Nm
1167: will ask if you want to go back to the previous version, and lose the
1168: modifications done on the file, or stay in edition mode on it.
1169: .Pp
1170: The
1.35 jmc 1171: .Ic unedit
1172: command takes the following options:
1173: .Bl -tag -width Ds -offset 3n
1174: .It Fl l
1175: Limit the scope of the search to the local directory
1176: only and disable recursive behaviour.
1177: .It Fl R
1178: Enable recursive behaviour.
1179: This is the default.
1180: .El
1.11 jmc 1181: .It Xo Ic update
1.38 xsa 1182: .Op Fl AdflPpR
1183: .Oo Fl D Ar date \*(Ba
1184: .Fl r Ar rev Oc
1185: .Op Fl I Ar ign
1186: .Op Fl j Ar rev
1187: .Op Fl k Ar mode
1188: .Op Fl W Ar spec
1.4 jfb 1189: .Op Ar file ...
1.3 jfb 1190: .Xc
1.7 jfb 1191: .Pp
1.3 jfb 1192: The
1.11 jmc 1193: .Ic update
1.17 david 1194: command is used to merge any of the changes that have occurred on the remote
1.3 jfb 1195: repository into the local one where the command was run.
1196: .Pp
1197: The
1.35 jmc 1198: .Ic update
1199: command takes the following options:
1200: .Bl -tag -width Ds -offset 3n
1201: .It Fl A
1.41 xsa 1202: Reset any sticky tags, dates, or keyword substitution modes that
1203: have been set on the tree.
1.38 xsa 1204: .It Fl D Ar date
1205: Update as of the latest revision no later than
1206: .Ar date
1207: (is sticky).
1208: .It Fl d
1209: Create any new directories.
1210: Without this option,
1211: .Nm
1212: does not create any new files sitting in these new directories
1213: added in the base repository since the last update of the working
1214: copy, or since the last update with the
1215: .Fl d
1216: option.
1217: .It Fl f
1218: Force the use of the head revision if the specified
1219: tag or date is not found.
1220: .It Fl I Ar ign
1221: Ignore files specified by
1222: .Ar ign .
1223: This option can be used several times on the command line.
1224: To see all files, use the
1225: .Fl I Ar !\&
1226: specification.
1227: .It Fl j Ar rev
1228: Merge in changes made between current revision and
1229: .Ar rev .
1230: If two
1231: .Fl j
1232: options are specified, only merge the differences between the two
1233: revisions of the branch.
1234: This allows successive merges without having to resolve
1235: already resolved conflicts again.
1236: .It Fl k Ar mode
1237: Specify the keyword substitution mode (is sticky).
1.35 jmc 1238: .It Fl l
1239: Limit the scope of the search to the local directory
1240: only and disable recursive behaviour.
1241: .It Fl P
1242: Prune any directories that have become empty as a result of the update.
1.38 xsa 1243: .It Fl p
1244: Send the result of the update to standard output (avoids stickiness).
1.35 jmc 1245: .It Fl R
1246: Enable recursive behaviour.
1247: This is the default.
1.38 xsa 1248: .It Fl r Ar rev
1249: Update from a particular revision or branch (is sticky).
1250: .It Fl W Ar spec
1251: Wrappers specification line.
1.35 jmc 1252: .El
1.38 xsa 1253: .Pp
1254: By default, the
1255: .Ic update
1256: command does not create new directories; the
1257: .Fl d
1258: option must be used for that.
1.29 xsa 1259: .Pp
1260: For each file updated, a single letter prefix is given to
1261: specify the state of the file.
1262: The possible prefixes are as follows:
1263: .Bl -tag -width "XXX"
1264: .It \&?
1265: The file is unknown to
1266: .Nm .
1267: .It A
1268: The file has been added with the
1269: .Ic add
1270: command, but has not been committed to the repository with the
1271: .Ic commit
1272: command.
1273: .It C
1274: A merge, with a more recent version of the file, has been done,
1275: but unresolved conflicts still remain.
1276: .It M
1277: The file has been locally modified; if a more recent version
1278: is available, the merge has been done without conflict.
1279: .It P
1280: The same as
1281: .Sq U ,
1282: but, in client-server mode, only differences are sent to save network
1283: resources.
1284: .It R
1285: The file has been removed with the
1286: .Ic remove
1287: command, but has not been committed to the repository with the
1288: .Ic commit
1289: command.
1290: .It U
1291: The file is up to date.
1292: .El
1.13 jmc 1293: .Pp
1294: Aliases:
1295: .Ic up ,
1296: .Ic upd .
1.11 jmc 1297: .It Ic version
1.3 jfb 1298: Causes
1299: .Nm
1300: to print its version information.
1.14 jfb 1301: If this command is issued within a local copy of a remote repository or
1302: if either the
1303: .Ev CVSROOT
1304: environment variable or the
1305: .Fl d
1306: flag specify a remote repository,
1.3 jfb 1307: .Nm
1308: will also connect to the server and ask it to print its version information.
1.13 jmc 1309: .Pp
1310: Aliases:
1311: .Ic ve ,
1312: .Ic ver .
1.32 xsa 1313: .It Xo Ic watch
1314: .Ar on | off | add | remove
1315: .Op Fl lR
1316: .Op Fl a Ar action
1317: .Op Ar file ...
1318: .Xc
1319: .Pp
1320: The
1321: .Ic watch
1322: command switches a file from normal mode to
1323: pseudo-lock mode as well as handling the notifications associated
1324: with it.
1325: Pseudo-lock mode means knowing who is editing a file:
1326: for that,
1327: .Nm
1328: extracts the file in read-only mode.
1329: Users must use the
1330: .Ic edit
1331: command to get the editing rights on the file.
1332: .Pp
1333: One of the following arguments to the
1334: .Ic watch
1335: command is mandatory: on, off, add, or remove.
1336: .Ar on
1337: switches the file into pseudo-lock mode;
1338: .Ar off
1339: switches it back to normal mode;
1340: .Ar add
1341: adds notifications for specific actions on the file;
1342: .Ar remove
1343: removes those notifications.
1344: .Pp
1345: The notifications are permanent.
1346: They remain in place until the
1347: .Ic watch remove
1348: command is issued while the temporary notifications are
1349: made available with the
1350: .Ic edit
1351: command.
1352: .Pp
1353: The
1.35 jmc 1354: .Ic watch
1355: command takes the following options:
1356: .Bl -tag -width Ds -offset 3n
1357: .It Fl a Ar action
1358: Specify the permanent notification wanted for
1.32 xsa 1359: .Ar add | remove :
1360: .Pp
1361: .Bl -tag -width "commitXX" -compact
1362: .It Cm commit
1.35 jmc 1363: Another user has committed changes to the file.
1.32 xsa 1364: .It Cm edit
1.35 jmc 1365: Another user is editing the file.
1.32 xsa 1366: .It Cm unedit
1.35 jmc 1367: Another user has finished editing the file.
1.32 xsa 1368: .It Cm all
1369: All of the above.
1370: .It Cm none
1371: No notification.
1372: .El
1373: .Pp
1.35 jmc 1374: If no specification is requested using the
1.32 xsa 1375: .Ar add
1376: or
1377: .Ar remove
1378: arguments, it implies the
1379: .Fl a Ar all
1380: option.
1.35 jmc 1381: .It Fl l
1382: Limit the scope of the search to the local directory
1383: only and disable recursive behaviour.
1384: .It Fl R
1385: Enable recursive behaviour.
1386: This is the default.
1387: .El
1.32 xsa 1388: .It Xo Ic watchers
1389: .Op Fl lR
1390: .Op Ar file ...
1391: .Xc
1392: .Pp
1393: The
1394: .Ic watchers
1395: command lists the users who asked for notifications as well as the
1396: notifications details.
1397: The possible notifications are as follows:
1398: .Bl -tag -width "tcommitXX"
1399: .It Cm commit
1400: Permanent watch of a commit of a new version of a file.
1401: .It Cm edit
1402: Permanent watch of the start of file edition.
1403: .It Cm tcommit
1404: Temporary watch of a commit of new version of a file.
1405: .It Cm tedit
1406: Temporary watch of the start of file edition.
1407: .It Cm tunedit
1408: Temporary watch of the end of file edition.
1409: .It Cm unedit
1410: Permanent watch of the end of file edition.
1411: .El
1412: .Pp
1413: The temporary watches are set using the
1414: .Ic edit
1415: command, until the
1416: .Ic commit
1417: or
1418: .Ic unedit
1.35 jmc 1419: command is issued on a file.
1420: .Pp
1421: The
1422: .Ic watchers
1423: command takes the following options:
1424: .Bl -tag -width Ds -offset 3n
1425: .It Fl l
1426: Limit the scope of the search to the local directory
1427: only and disable recursive behaviour.
1428: .It Fl R
1429: Enable recursive behaviour.
1430: This is the default.
1431: .El
1.1 jfb 1432: .El
1433: .Sh ENVIRONMENT
1434: .Bl -tag -width CVS_CLIENT_LOG
1.8 jmc 1435: .It Ev CVS_CLIENT_LOG
1436: This variable enables logging of all communications between the client and
1437: server when running in non-local mode.
1438: If set, this environment variable must contain a base path from which two
1439: paths will be generated by appending ".in" to the value for the server's
1440: input and ".out" for the server's output.
1.1 jfb 1441: .It Ev CVS_RSH
1442: Name of the program to use when connecting to the server through a remote
1443: shell.
1444: The default is to use the
1445: .Xr ssh 1
1446: program.
1447: .It Ev CVS_SERVER
1448: If set, gives the name of the program to invoke as a
1449: .Nm
1450: server when using remote shell.
1451: The default is to use `cvs'.
1452: .It Ev CVSEDITOR
1453: Name of the editor to use when editing commit messages.
1.8 jmc 1454: Checked before
1455: .Ev EDITOR
1456: and
1457: .Ev VISUAL .
1458: .It Ev CVSROOT
1459: When set, this variable should contain the string pointing to the root
1460: directory of the CVS repository.
1461: The contents of this variable are ignored when the
1462: .Fl d
1463: option is given or if `Root' files exist in the checked-out copy.
1.1 jfb 1464: .It Ev EDITOR
1.9 jmc 1465: Name of the editor to use when editing commit messages.
1466: This is traditionally a line-oriented editor,
1467: such as
1468: .Xr ex 1 .
1.1 jfb 1469: .It Ev VISUAL
1.9 jmc 1470: Name of the editor to use when editing commit messages.
1471: This is traditionally a screen-oriented editor,
1472: such as
1473: .Xr vi 1 .
1.8 jmc 1474: .El
1475: .Sh FILES
1476: .Bl -tag -width Ds
1477: .It Pa $HOME/.cvsrc
1478: File containing a list of implicit options to pass to certain commands.
1479: This file is read on startup unless the
1480: .Fl f
1481: option is specified.
1482: .It Pa $CVSROOT/CVSROOT
1483: Directory containing repository administrative files.
1484: .It Pa $CVSROOT/CVSROOT/loginfo
1485: File containing associations between modules and handlers for
1486: post-commit logging.
1.1 jfb 1487: .El
1488: .Sh SEE ALSO
1489: .Xr diff 1 ,
1.15 jmc 1490: .Xr gzip 1 ,
1.1 jfb 1491: .Xr patch 1 ,
1.8 jmc 1492: .Xr rcs 1 ,
1.16 jmc 1493: .Xr cvsrc 5 ,
1.35 jmc 1494: .Xr cvsintro 7 ,
1.1 jfb 1495: .Xr cvsd 8
1.8 jmc 1496: .Sh HISTORY
1497: The OpenCVS project is a BSD-licensed rewrite of the original
1498: Concurrent Versioning System written by Jean-Francois Brousseau.
1499: The original CVS code was written in large parts by Dick Grune,
1500: Brian Berliner and Jeff Polk.
1501: .Sh AUTHORS
1502: .An Jean-Francois Brousseau
1503: .An Vincent Labrecque
1504: .An Joris Vink
1.43 jfb 1505: .An Xavier Santolaria
1.2 jfb 1506: .Sh CAVEATS
1507: This CVS implementation does not fully conform to the GNU CVS version.
1.3 jfb 1508: In some cases, this was done explicitly because GNU CVS has inconsistencies
1.2 jfb 1509: or ambiguous behaviour.
1.3 jfb 1510: Some things have also been left out or modified to enhance the overall
1511: security of the system.
1512: .Pp
1513: Among other things, support for the pserver connection mechanism has been
1514: dropped because of security issues with the authentication mechanism.