Previous: [[cvs: Expansions in administrative files#Expansions in administrative files|Variables]], Up: [[cvs: Reference manual for Administrative files#Reference manual for Administrative files|Administrative files]] |[[cvs: Index#SEC_Contents|Contents]]||[[cvs: Index#Index|Index]]|

----

=== The CVSROOT/config configuration file ===

The administrative file ‘`config`’ contains various miscellaneous settings which affect the behavior of CVS. The syntax is slightly different from the other administrative files. Variables are not expanded. Lines which start with ‘`#`’ are considered comments. Other lines consist of a keyword, ‘`=`’, and a value. Note that this syntax is very strict. Extraneous spaces or tabs are not permitted.

Currently defined keywords are:

;`RCSBIN=bindir` : For CVS 1.9.12 through 1.9.18, this setting told CVS to look for RCS programs in the bindir directory. Current versions of CVS do not run RCS programs; for compatibility this setting is accepted, but it does nothing.

;`SystemAuth=value` : If value is ‘`yes`’, then pserver should check for users in the system’s user database if not found in ‘`CVSROOT/passwd`’. If it is ‘`no`’, then all pserver users must exist in ‘`CVSROOT/passwd`’. The default is ‘`yes`’. For more on pserver, see [[cvs: Direct connection with password authentication#Direct connection with password authentication|Password authenticated]].

;`TopLevelAdmin=value` : Modify the ‘`checkout`’ command to create a ‘`CVS`’ directory at the top level of the new working directory, in addition to ‘`CVS`’ directories created within checked-out directories. The default value is ‘`no`’.

: This option is useful if you find yourself performing many commands at the top level of your working directory, rather than in one of the checked out subdirectories. The ‘`CVS`’ directory created there will mean you don’t have to specify `CVSROOT` for each command. It also provides a place for the ‘`CVS/Template`’ file (see [[cvs: How data is stored in the working directory#How data is stored in the working directory|Working directory storage]]).

;`LockDir=directory` : Put CVS lock files in directory rather than directly in the repository. This is useful if you want to let users read from the repository while giving them write access only to directory, not to the repository. It can also be used to put the locks on a very fast in-memory file system to speed up locking and unlocking the repository. You need to create directory, but CVS will create subdirectories of directory as it needs them. For information on CVS locks, see [[cvs: Several developers simultaneously attempting to run CVS#Several developers simultaneously attempting to run CVS|Concurrency]].

: Before enabling the LockDir option, make sure that you have tracked down and removed any copies of CVS 1.9 or older. Such versions neither support LockDir, nor will give an error indicating that they don’t support it. The result, if this is allowed to happen, is that some CVS users will put the locks one place, and others will put them another place, and therefore the repository could become corrupted. CVS 1.10 does not support LockDir but it will print a warning if run on a repository with LockDir enabled.

;`LogHistory=value` : Control what is logged to the ‘`CVSROOT/history`’ file (see [[cvs: history--Show status of files and users#history—Show status of files and users|history]]). Default of ‘`TOEFWUCGMAR`’ (or simply ‘`all`’) will log all transactions. Any subset of the default is legal. (For example, to only log transactions that modify the ‘`*,v`’ files, use ‘`LogHistory=TMAR`’.)

;`RereadLogAfterVerify=value` : Modify the ‘`commit`’ command such that CVS will reread the log message after running the program specified by ‘`verifymsg`’. value may be one of ‘`yes`’ or ‘`always`’, indicating that the log message should always be reread; ‘`no`’ or ‘`never`’, indicating that it should never be reread; or value may be ‘`stat`’, indicating that the file should be checked with the filesystem ‘`stat()`’ function to see if it has changed (see warning below) before rereading. The default value is ‘`always`’.

: '''Note: the ‘stat’ mode can cause CVS to pause for up to one extra second per directory committed. This can be less IO and CPU intensive but is not recommended for use with large repositories'''

: See [[cvs: Verifying log messages#Verifying log messages|verifymsg]], for more information on how verifymsg may be used.

;`UserAdminOptions=value` : Control what options will be allowed with the `cvs admin` command (see [[cvs: admin--Administration#admin—Administration|admin]]) for users not in the `cvsadmin` group. The value string is a list of single character options which should be allowed. If a user who is not a member of the `cvsadmin` group tries to execute any `cvs admin` option which is not listed they will will receive an error message reporting that the option is restricted.

: If no `cvsadmin` group exists on the server, CVS will ignore the `UserAdminOptions` keyword (see [[cvs: admin--Administration#admin—Administration|admin]]).

: When not specified, `UserAdminOptions` defaults to ‘`k`’. In other words, it defaults to allowing users outside of the `cvsadmin` group to use the `cvs admin` command only to change the default keyword expansion mode for files.

: As an example, to restrict users not in the `cvsadmin` group to using `cvs admin` to change the default keyword substitution mode, lock revisions, unlock revisions, and replace the log message, use ‘`UserAdminOptions=klum`’.

----

Previous: [[cvs: Expansions in administrative files#Expansions in administrative files|Variables]], Up: [[cvs: Reference manual for Administrative files#Reference manual for Administrative files|Administrative files]] |[[cvs: Index#SEC_Contents|Contents]]||[[cvs: Index#Index|Index]]|

This document was generated on a sunny day using [http://www.nongnu.org/texi2html/ texi2html].