Annotation of src/usr.bin/cvs/cvs.1, Revision 1.34
1.34 ! xsa 1: .\" $OpenBSD: cvs.1,v 1.33 2005/01/27 16:37:23 xsa Exp $
1.1 jfb 2: .\"
3: .\" Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
4: .\" All rights reserved.
5: .\"
6: .\" Redistribution and use in source and binary forms, with or without
7: .\" modification, are permitted provided that the following conditions
8: .\" are met:
9: .\"
10: .\" 1. Redistributions of source code must retain the above copyright
11: .\" notice, this list of conditions and the following disclaimer.
12: .\" 2. The name of the author may not be used to endorse or promote products
13: .\" derived from this software without specific prior written permission.
14: .\"
15: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
16: .\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
17: .\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
18: .\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19: .\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20: .\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
21: .\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22: .\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23: .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
24: .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25: .\"
26: .Dd May 16, 2004
27: .Dt CVS 1
28: .Os
29: .Sh NAME
30: .Nm cvs
1.3 jfb 31: .Nd OpenCVS Concurrent Versioning System client
1.1 jfb 32: .Sh SYNOPSIS
33: .Nm
1.15 jmc 34: .Op Fl flQqtv
1.1 jfb 35: .Op Fl d Ar root
36: .Op Fl e Ar editor
1.20 jmc 37: .Xo
38: .Oo Fl s
39: .Ar var Ns = Ns Ar val Oc
40: .Xc
1.15 jmc 41: .Op Fl z Ar level
1.1 jfb 42: .Ar command Op Ar ...
43: .Sh DESCRIPTION
44: The
45: .Nm
46: program acts as both client and server for the use of and administration of
47: a CVS source repository.
48: CVS is used to maintain version information on files that are kept in a
49: repository.
50: Although it is more commonly used to track changes in source code, there
51: are no real limitations to the type of files that you can store in a
52: repository.
53: .Pp
1.7 jfb 54: Unless the
55: .Fl f
56: option is specified,
57: .Nm
58: reads its startup configuration file
59: .Pa .cvsrc
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.16 jmc 64: See
65: .Xr cvsrc 5
66: for further information.
1.7 jfb 67: .Pp
1.1 jfb 68: The following options are supported:
1.15 jmc 69: .Bl -tag -width "-e editorXX"
1.1 jfb 70: .It Fl d Ar root
71: Use
72: .Ar root
73: as the path to the root directory of the CVS repository.
74: The value must specify an absolute path.
75: .It Fl e Ar editor
76: Use the program
77: .Ar editor
78: whenever editing log information.
1.8 jmc 79: This option overrides the environment variables CVSEDITOR, VISUAL, and EDITOR.
1.1 jfb 80: .It Fl f
1.7 jfb 81: Do not read the user's configuration file on startup.
1.1 jfb 82: .It Fl l
83: Suppress logging of history information.
84: .It Fl Q
85: Be extra quiet.
86: Only error messages will be displayed.
87: .It Fl q
88: Be quiet about reporting.
1.20 jmc 89: .It Fl s Ar var Ns = Ns Ar val
90: Set the value of the internal variable
91: .Ar var
92: to the string
93: .Ar val .
1.15 jmc 94: .It Fl t
95: Trace program execution.
1.1 jfb 96: .It Fl v
97: Display version information and exit.
1.15 jmc 98: .It Fl z Ar level
99: Specify the compression level to
100: .Xr gzip 1
101: when transferring files.
102: The compression level ranges from 1 to 9,
103: with 1 being the fastest,
104: and 9 providing the best level of compression.
105: The default is 6.
1.1 jfb 106: .El
107: .Sh COMMANDS
1.3 jfb 108: The following commands are supported by
109: .Nm .
1.7 jfb 110: .Bl -tag -width "xxxxxxxxxxxx"
1.11 jmc 111: .It Xo Ic add Op Fl m Ar msg
1.1 jfb 112: .Ar file Op ...
1.3 jfb 113: .Xc
1.7 jfb 114: .Pp
1.1 jfb 115: Before a file is known to CVS, it must be added to the repository using
116: this command.
117: Adding a file does not actually publish the contents of the
1.7 jfb 118: file, so you must
1.11 jmc 119: .Ic commit
1.7 jfb 120: the first revision in order to let other users see the file with the
1.11 jmc 121: .Ic update
1.4 jfb 122: or
1.11 jmc 123: .Ic checkout
1.4 jfb 124: commands.
1.1 jfb 125: .Pp
1.7 jfb 126: Although adding a file does not involve a log message, it is possible to
127: specify one to include with the action, using the
128: .Fl m
129: option.
1.13 jmc 130: .Pp
131: Aliases:
132: .Ic ad ,
133: .Ic new .
134: .It Ic admin
135: Administration front-end for
136: .Xr rcs 1 .
137: .Pp
138: Aliases:
139: .Ic adm ,
140: .Ic rcs .
1.26 xsa 141: .It Xo Ic annotate
142: .Op Fl flR
143: .Oo Fl D Ar date \*(Ba
144: .Fl r Ar rev Oc
145: .Op Ar file ...
146: .Xc
147: .Pp
1.23 xsa 148: For each line of any files specified, show information about its
149: last revision.
150: The information given is the last revision when a modification occurred,
151: the author's name, and the date of the revision.
1.26 xsa 152: .Pp
153: The
154: .Fl f
155: flag is used to force the use of the head revision if the specified
156: tag or date is not found.
157: This can be used in combination with
158: .Fl D
159: or
160: .Fl r
161: to ensure that there is some output from the
162: .Ic annotate
163: command, even if only to show Revision 1.1 of the file.
164: The
165: .Fl l
166: flag is used to limit the scope of the search to the local directory
167: only and to disable recursive behaviour, which can be requested with the
168: .Fl R
169: flag.
170: The
171: .Fl D
172: flag shows the annotations as of the latest revision no later than
173: .Ar date .
174: The
175: .Fl r
176: flag shows annotations as of revision
177: .Ar rev
178: (can be a revision number or a tag).
1.13 jmc 179: .Pp
180: Aliases:
181: .Ic ann .
1.11 jmc 182: .It Xo Ic checkout
1.7 jfb 183: .Op Fl c
184: .Op Ar module ...
185: .Xc
186: .Pp
187: The
1.11 jmc 188: .Ic checkout
1.7 jfb 189: command is used to create a local copy of one or more modules present on the
190: target CVS repository.
1.13 jmc 191: .Pp
192: Aliases:
193: .Ic co ,
194: .Ic get .
1.11 jmc 195: .It Xo Ic commit
1.3 jfb 196: .Op Fl flnR
1.27 xsa 197: .Oo Fl F Ar logfile \*(Ba
198: .Fl m Ar msg Oc
1.3 jfb 199: .Op Fl r Ar rev
1.4 jfb 200: .Op Ar file ...
1.3 jfb 201: .Xc
1.7 jfb 202: .Pp
1.1 jfb 203: The
1.11 jmc 204: .Ic commit
1.1 jfb 205: command is used to send local changes back to the server and update the
206: repository's information to reflect the changes.
1.27 xsa 207: .Pp
208: The
209: .Fl l
210: flag is used to limit the scope of the search to the local directory only.
211: Sometimes one might want to force a file to be committed, even though
212: it is unchanged: this can be done using the
213: .Fl f
214: flag, which also has the effect of disabling recursive behaviour,
215: which can be requested with the
216: .Fl R
217: flag.
218: When using the
219: .Fl n
220: flag, programs listed in the CVSROOT/modules file do not get executed.
221: The
222: .Fl m
223: flag can be used to specify a log message on the command line which
224: suppresses the editor invocation, or use the
225: .Fl F
226: flag to specify a
227: .Ar file
228: as argument which contains the log message.
229: The
230: .Fl r
231: flag can be used to commit to a particular symbolic or numerical revision.
1.13 jmc 232: .Pp
233: Aliases:
234: .Ic ci ,
235: .Ic com .
1.24 jfb 236: .It Xo Ic diff Op Fl cilNpu
1.3 jfb 237: .Op Fl D Ar date
238: .Op Fl r Ar rev
1.4 jfb 239: .Op Ar file ...
1.3 jfb 240: .Xc
1.7 jfb 241: .Pp
1.3 jfb 242: The
1.11 jmc 243: .Ic diff
1.3 jfb 244: command is very similar to the
245: .Xr diff 1
1.5 jfb 246: program, except that the differential comparisons that it generates are
1.3 jfb 247: between local or remote revisions of files stored in the CVS repository.
1.13 jmc 248: .Pp
249: Aliases:
250: .Ic di ,
251: .Ic dif .
1.30 xsa 252: .It Xo Ic edit Op Fl lR
253: .Op Fl a Ar action
254: .Op Ar file ...
255: .Xc
256: .Pp
257: The
258: .Ic edit
259: command is used to make a file that is being watched (read-only)
260: readable and writable and to inform others that you are planning to edit it.
261: Notifications terminate when the
262: .Ic commit
263: command is issued.
264: Editing rights on the file can be given up using the
265: .Ic unedit
266: command.
267: This command terminates the temporary notifications.
268: .Pp
269: The
270: .Fl l
271: flag is used to limit the scope of the search to the local directory
272: only and to disable recursive behaviour, which can be requested with the
273: .Fl R
274: flag.
275: The
276: .Fl a
277: flag specifies the temporary notification wanted:
278: .Bl -tag -width "commitXX"
279: .It Cm commit
280: Another user has committed changes to the
281: .Ar file .
282: .It Cm edit
283: Another user has issued the
284: .Ic edit
285: command on the
286: .Ar file .
287: .It Cm unedit
288: Another user has issued the
289: .Ic unedit
290: command on the
291: .Ar file .
292: .It Cm all
293: All of the above.
294: .It Cm none
295: None of the above.
296: .El
297: .Pp
298: The
299: .Fl a
300: flag may appear more than once, or not at all.
301: If omitted, the action defaults to
1.31 jmc 302: .Cm all .
1.33 xsa 303: .It Xo Ic editors
304: .Op Fl lR
1.34 ! xsa 305: .Op Ar file ...
1.33 xsa 306: .Xc
307: .Pp
308: The
309: .Ic editors
310: command lists the users with edition rights on a file.
311: For that, pseudo-lock mode must be enabled (see the
312: .Ic watch
313: command).
314: The e-mail address of the user editing the file, the timestamp
315: when the edition first started, the host from where the edition
316: has been requested and the path to the edited file are listed.
317: .Pp
318: The
319: .Fl l
320: flag is used to limit the scope of the search to the local directory
321: only and to disable recursive behaviour, which can be requested with the
322: .Fl R
323: flag.
1.13 jmc 324: .It Ic export
325: Export sources from CVS;
326: similar to
327: .Ic checkout .
328: .Pp
329: Aliases:
330: .Ic ex ,
331: .Ic exp .
332: .It Ic history
333: Show repository access history.
334: .Pp
335: Aliases:
336: .Ic hi ,
337: .Ic his .
1.22 jmc 338: .It Xo Ic import
339: .Op Fl b Ar branch
340: .Op Fl m Ar msg
341: .Ar repository
342: .Ar vendortag
343: .Ar releasetag
344: .Xc
345: .Pp
1.13 jmc 346: Import sources into CVS using vendor branches.
1.22 jmc 347: .Pp
348: The
349: .Fl b
350: flag specifies the first-level branch number.
351: The
352: .Fl m
353: flag specifies the log message to send.
354: .Pp
355: At least three arguments are required:
356: .Ar repository
357: specifies the location of the sources to be imported;
358: .Ar vendortag
359: is a tag for the entire branch;
360: .Ar releasetag
361: is used to identify the files you created with
362: .Nm
363: .Ic import .
1.13 jmc 364: .Pp
365: Aliases:
366: .Ic im ,
367: .Ic imp .
368: .It Ic init
369: Create a CVS repository if it doesn't exist.
370: .It Ic kserver
371: Start a Kerberos authentication server.
372: .It Ic log
373: Print out history information for files.
374: .Pp
375: Aliases:
376: .Ic lo .
377: .It Ic login
378: Prompt for password for authenticating server.
379: .It Ic logout
380: Remove entry in .cvspass for remote repository.
381: .It Ic rdiff
382: Create
383: .Xr patch 1
384: format diffs between releases.
385: .It Ic release
386: Indicate that a module is no longer in use.
1.18 xsa 387: .It Xo Ic remove
388: .Op Fl flR
389: .Op Ar file ...
390: .Xc
391: The
392: .Ic remove
393: command is used to inform
394: .Nm
395: that
396: .Ar file
397: is scheduled to be removed from the repository.
398: Files are not actually removed from the repository until the
399: .Ic commit
400: command has been run subsequently.
1.28 xsa 401: .Pp
402: The
403: .Fl f
404: flag locally removes the file.
405: If this flag is not used, the file must be locally removed beforehand for
406: the command to be valid.
407: The
408: .Fl l
409: flag is used to limit the scope of the search to the local directory
410: only and to disable recursive behaviour, which can be requested with the
411: .Fl R
412: flag.
1.18 xsa 413: .Pp
414: Aliases:
1.19 xsa 415: .Ic rm ,
416: .Ic delete .
1.13 jmc 417: .It Ic rlog
418: Print out history information for a module.
419: .It Ic rtag
420: Add a symbolic link to a module.
421: .It Ic server
422: Server mode.
1.25 xsa 423: .It Xo Ic status
424: .Op Fl lRv
425: .Op Ar file ...
426: .Xc
427: The
428: .Ic status
429: command is used to display the state of checked out files.
430: .Pp
431: The
432: .Fl l
433: flag is used to limit the scope of the search to the local directory
434: only and to disable recursive behaviour, which can be requested with the
435: .Fl R
436: flag.
437: The
438: .Fl v
439: flag causes the symbolic tags for the file to be displayed.
440: .Pp
441: The following are the different possible states:
442: .Bl -tag -width "Unresolved ConflictXX"
443: .It Cm Locally Added
444: The file has been added with the
445: .Ic add
446: command, but has not been committed to the repository with the
447: .Ic commit
448: command.
449: .It Cm Locally Modified
450: The file is up to date, but has been locally modified since then.
451: .It Cm Locally Removed
452: The file has been removed with the
453: .Ic remove
454: command, but has not been committed to the repository with the
455: .Ic commit
456: command.
457: .It Cm Needs Checkout
458: The file has not been modified; a new version is available.
459: .It Cm Needs Merge
460: The file has been modified and a newer version is available.
461: A merge is necessary.
462: .It Cm Needs Patch
463: Same as
464: .Ic Needs Checkout
465: but, in client-server mode, only the differences are sent to save
466: network resources.
467: .It Cm Unresolved Conflict
468: A merge has been done, but unresolved conflicts still remain.
469: .It Cm Up-to-date
470: The file is up to date.
471: .El
1.13 jmc 472: .Pp
473: Aliases:
474: .Ic st ,
475: .Ic stat .
1.21 jmc 476: .It Xo Ic tag
477: .Op Fl bdl
478: .Op Fl r Ar old_tag
479: .Op Ar symbolic_tag
480: .Op Ar file ...
481: .Xc
482: .Pp
483: Add a symbolic tag to a checked out version of
484: .Ar file .
485: .Pp
486: The
487: .Fl b
488: flag is used to specify a branch tag.
489: If the
490: .Fl d
491: flag is specified the tag will be deleted.
492: The
493: .Fl l
494: flag is used to specify a local change only and disables the recursive
495: behaviour.
496: If the
497: .Fl r
498: flag is used,
499: .Nm
500: will only tag the files with
501: .Ar symbolic_tag
502: if they are already tagged with
503: .Ar old_tag .
504: When done, it will remove the old tag
505: leaving only the new tag behind on exactly the same files.
1.13 jmc 506: .Pp
507: Aliases:
508: .Ic ta ,
509: .Ic freeze .
1.30 xsa 510: .It Xo Ic unedit Op Fl lR
511: .Op Ar file ...
512: .Xc
513: .Pp
514: The
515: .Ic unedit
516: command is used to give up an edition on a file and thus cancel
517: the wanted temporary notifications.
518: If the file has been modified since the
1.13 jmc 519: .Ic edit
1.30 xsa 520: command has been issued,
521: .Nm
522: will ask if you want to go back to the previous version, and lose the
523: modifications done on the file, or stay in edition mode on it.
524: .Pp
525: The
526: .Fl l
527: flag is used to limit the scope of the search to the local directory
528: only and to disable recursive behaviour, which can be requested with the
529: .Fl R
530: flag.
1.11 jmc 531: .It Xo Ic update
1.3 jfb 532: .Op Fl ACdP
1.4 jfb 533: .Op Ar file ...
1.3 jfb 534: .Xc
1.7 jfb 535: .Pp
1.3 jfb 536: The
1.11 jmc 537: .Ic update
1.17 david 538: command is used to merge any of the changes that have occurred on the remote
1.3 jfb 539: repository into the local one where the command was run.
540: .Pp
541: The
542: .Fl A
1.8 jmc 543: flag resets any sticky tags, dates, or kopts that have been set on the tree.
1.3 jfb 544: The
545: .Fl l
546: flag is used to specify a local change only and disables the recursive
547: behaviour.
548: The
549: .Fl P
550: flag causes
551: .Nm
552: to prune any directories that have become empty as a result of the update.
1.29 xsa 553: .Pp
554: For each file updated, a single letter prefix is given to
555: specify the state of the file.
556: The possible prefixes are as follows:
557: .Bl -tag -width "XXX"
558: .It \&?
559: The file is unknown to
560: .Nm .
561: .It A
562: The file has been added with the
563: .Ic add
564: command, but has not been committed to the repository with the
565: .Ic commit
566: command.
567: .It C
568: A merge, with a more recent version of the file, has been done,
569: but unresolved conflicts still remain.
570: .It M
571: The file has been locally modified; if a more recent version
572: is available, the merge has been done without conflict.
573: .It P
574: The same as
575: .Sq U ,
576: but, in client-server mode, only differences are sent to save network
577: resources.
578: .It R
579: The file has been removed with the
580: .Ic remove
581: command, but has not been committed to the repository with the
582: .Ic commit
583: command.
584: .It U
585: The file is up to date.
586: .El
1.13 jmc 587: .Pp
588: Aliases:
589: .Ic up ,
590: .Ic upd .
1.11 jmc 591: .It Ic version
1.3 jfb 592: Causes
593: .Nm
594: to print its version information.
1.14 jfb 595: If this command is issued within a local copy of a remote repository or
596: if either the
597: .Ev CVSROOT
598: environment variable or the
599: .Fl d
600: flag specify a remote repository,
1.3 jfb 601: .Nm
602: will also connect to the server and ask it to print its version information.
1.13 jmc 603: .Pp
604: Aliases:
605: .Ic ve ,
606: .Ic ver .
1.32 xsa 607: .It Xo Ic watch
608: .Ar on | off | add | remove
609: .Op Fl lR
610: .Op Fl a Ar action
611: .Op Ar file ...
612: .Xc
613: .Pp
614: The
615: .Ic watch
616: command switches a file from normal mode to
617: pseudo-lock mode as well as handling the notifications associated
618: with it.
619: Pseudo-lock mode means knowing who is editing a file:
620: for that,
621: .Nm
622: extracts the file in read-only mode.
623: Users must use the
624: .Ic edit
625: command to get the editing rights on the file.
626: .Pp
627: One of the following arguments to the
628: .Ic watch
629: command is mandatory: on, off, add, or remove.
630: .Ar on
631: switches the file into pseudo-lock mode;
632: .Ar off
633: switches it back to normal mode;
634: .Ar add
635: adds notifications for specific actions on the file;
636: .Ar remove
637: removes those notifications.
638: .Pp
639: The notifications are permanent.
640: They remain in place until the
641: .Ic watch remove
642: command is issued while the temporary notifications are
643: made available with the
644: .Ic edit
645: command.
646: .Pp
647: The
648: .Fl l
649: flag is used to limit the scope of the search to the local directory
650: only and to disable recursive behaviour, which can be requested with the
651: .Fl R
652: flag.
653: The
654: .Fl a
655: flag specifies the permanent notification wanted for
656: .Ar add | remove :
657: .Pp
658: .Bl -tag -width "commitXX" -compact
659: .It Cm commit
660: Another user has committed changes to the
661: .Ar file .
662: .It Cm edit
663: Another user is editing the
664: .Ar file .
665: .It Cm unedit
666: Another user has finished editing the
667: .Ar file .
668: .It Cm all
669: All of the above.
670: .It Cm none
671: No notification.
672: .El
673: .Pp
674: If no speficiation is requested using the
675: .Ar add
676: or
677: .Ar remove
678: arguments, it implies the
679: .Fl a Ar all
680: option.
681: .It Xo Ic watchers
682: .Op Fl lR
683: .Op Ar file ...
684: .Xc
685: .Pp
686: The
687: .Ic watchers
688: command lists the users who asked for notifications as well as the
689: notifications details.
690: The possible notifications are as follows:
691: .Bl -tag -width "tcommitXX"
692: .It Cm commit
693: Permanent watch of a commit of a new version of a file.
694: .It Cm edit
695: Permanent watch of the start of file edition.
696: .It Cm tcommit
697: Temporary watch of a commit of new version of a file.
698: .It Cm tedit
699: Temporary watch of the start of file edition.
700: .It Cm tunedit
701: Temporary watch of the end of file edition.
702: .It Cm unedit
703: Permanent watch of the end of file edition.
704: .El
705: .Pp
706: The
707: .Fl l
708: flag is used to limit the scope of the search to the local directory
709: only and to disable recursive behaviour, which can be requested with the
710: .Fl R
711: flag.
712: .Pp
713: The temporary watches are set using the
714: .Ic edit
715: command, until the
716: .Ic commit
717: or
718: .Ic unedit
719: command is issued on the
720: .Ar file .
1.1 jfb 721: .El
722: .Sh ENVIRONMENT
723: .Bl -tag -width CVS_CLIENT_LOG
1.8 jmc 724: .It Ev CVS_CLIENT_LOG
725: This variable enables logging of all communications between the client and
726: server when running in non-local mode.
727: If set, this environment variable must contain a base path from which two
728: paths will be generated by appending ".in" to the value for the server's
729: input and ".out" for the server's output.
1.1 jfb 730: .It Ev CVS_RSH
731: Name of the program to use when connecting to the server through a remote
732: shell.
733: The default is to use the
734: .Xr ssh 1
735: program.
736: .It Ev CVS_SERVER
737: If set, gives the name of the program to invoke as a
738: .Nm
739: server when using remote shell.
740: The default is to use `cvs'.
741: .It Ev CVSEDITOR
742: Name of the editor to use when editing commit messages.
1.8 jmc 743: Checked before
744: .Ev EDITOR
745: and
746: .Ev VISUAL .
747: .It Ev CVSROOT
748: When set, this variable should contain the string pointing to the root
749: directory of the CVS repository.
750: The contents of this variable are ignored when the
751: .Fl d
752: option is given or if `Root' files exist in the checked-out copy.
1.1 jfb 753: .It Ev EDITOR
1.9 jmc 754: Name of the editor to use when editing commit messages.
755: This is traditionally a line-oriented editor,
756: such as
757: .Xr ex 1 .
1.1 jfb 758: .It Ev VISUAL
1.9 jmc 759: Name of the editor to use when editing commit messages.
760: This is traditionally a screen-oriented editor,
761: such as
762: .Xr vi 1 .
1.8 jmc 763: .El
764: .Sh FILES
765: .Bl -tag -width Ds
766: .It Pa $HOME/.cvsrc
767: File containing a list of implicit options to pass to certain commands.
768: This file is read on startup unless the
769: .Fl f
770: option is specified.
771: .It Pa $CVSROOT/CVSROOT
772: Directory containing repository administrative files.
773: .It Pa $CVSROOT/CVSROOT/loginfo
774: File containing associations between modules and handlers for
775: post-commit logging.
1.1 jfb 776: .El
777: .Sh SEE ALSO
778: .Xr diff 1 ,
1.15 jmc 779: .Xr gzip 1 ,
1.1 jfb 780: .Xr patch 1 ,
1.8 jmc 781: .Xr rcs 1 ,
1.16 jmc 782: .Xr cvsrc 5 ,
1.1 jfb 783: .Xr cvsd 8
1.8 jmc 784: .Sh HISTORY
785: The OpenCVS project is a BSD-licensed rewrite of the original
786: Concurrent Versioning System written by Jean-Francois Brousseau.
787: The original CVS code was written in large parts by Dick Grune,
788: Brian Berliner and Jeff Polk.
789: .Sh AUTHORS
790: .An Jean-Francois Brousseau
791: .An Vincent Labrecque
792: .An Joris Vink
1.2 jfb 793: .Sh CAVEATS
794: This CVS implementation does not fully conform to the GNU CVS version.
1.3 jfb 795: In some cases, this was done explicitly because GNU CVS has inconsistencies
1.2 jfb 796: or ambiguous behaviour.
1.3 jfb 797: Some things have also been left out or modified to enhance the overall
798: security of the system.
799: .Pp
800: Among other things, support for the pserver connection mechanism has been
801: dropped because of security issues with the authentication mechanism.