| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Sometimes in writing an administrative file, you might want the file to be able to know various things based on environment CVS is running in. There are several mechanisms to do that.
To find the home directory of the user running CVS
(from the HOME environment variable), use
`~' followed by `/' or the end of the line.
Likewise for the home directory of user, use
`~user'. These variables are expanded on
the server machine, and don't get any reasonable
expansion if pserver (see section Direct connection with password authentication)
is in use; therefore user variables (see below) may be
a better choice to customize behavior based on the user
running CVS.
One may want to know about various pieces of
information internal to CVS. A CVS internal
variable has the syntax ${variable},
where variable starts with a letter and consists
of alphanumeric characters and `_'. If the
character following variable is a
non-alphanumeric character other than `_', the
`{' and `}' can be omitted. The CVS
internal variables are:
CVSROOTThis is the absolute path to the current CVS root directory. See section The Repository, for a description of the various ways to specify this, but note that the internal variable contains just the directory and not any of the access method information.
RCSBINIn CVS 1.9.18 and older, this specified the directory where CVS was looking for RCS programs. Because CVS no longer runs RCS programs, specifying this internal variable is now an error.
CVSEDITOREDITORVISUALThese all expand to the same value, which is the editor that CVS is using. See section Global options, for how to specify this.
USERUsername of the user running CVS (on the CVS server machine). When using pserver, this is the user specified in the repository specification which need not be the same as the username the server is running as (see section Setting up the server for password authentication). Do not confuse this with the environment variable of the same name.
SESSIONIDUnique Session ID of the CVS process. This is a random string of printable characters of at least 16 characters length. Users should assume that it may someday grow to at most 256 characters in length.
COMMITIDUnique Session ID of the CVS process. This is a random string of printable characters of at least 16 characters length. Users should assume that it may someday grow to at most 256 characters in length.
If you want to pass a value to the administrative files
which the user who is running CVS can specify,
use a user variable.
To expand a user variable, the
administrative file contains
${=variable}. To set a user variable,
specify the global option `-s' to CVS, with
argument variable=value. It may be
particularly useful to specify this option via
`.cvsrc' (see section Default options and the ~/.cvsrc file).
For example, if you want the administrative file to
refer to a test directory you might create a user
variable TESTDIR. Then if CVS is invoked
as
cvs -s TESTDIR=/work/local/tests |
and the
administrative file contains sh
${=TESTDIR}/runtests, then that string is expanded
to sh /work/local/tests/runtests.
All other strings containing `$' are reserved; there is no way to quote a `$' character so that `$' represents itself.
Environment variables passed to administrative files are:
CVS_USERThe CVS-specific username provided by the user, if it
can be provided (currently just for the pserver access
method), and to the empty string otherwise. (CVS_USER
and USER may differ when `$CVSROOT/CVSROOT/passwd'
is used to map CVS usernames to system usernames.)
LOGNAMEThe username of the system user.
USERSame as LOGNAME.
Do not confuse this with the internal variable of the same name.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on September, 14 2007 using texi2html 1.76.