C.4.4 Loginfo
The `loginfo' file is used to control where
`cvs commit' log information is sent. The first
entry on a line is a regular expression which is tested
against the directory that the change is being made to,
relative to the $CVSROOT
. If a match is found, then
the remainder of the line is a filter program that
should expect log information on its standard input.
Note that the filter program must read all
of the log information or CVS may fail with a broken pipe signal.
If the repository name does not match any of the
regular expressions in this file, the `DEFAULT'
line is used, if it is specified.
All occurrences of the name `ALL' appearing as a
regular expression are used in addition to the first
matching regular expression or `DEFAULT'.
The first matching regular expression is used.
See section The commit support files, for a description of the syntax of
the `loginfo' file.
The user may specify a format string as
part of the filter. The string is composed of a
`%' followed by a space, or followed by a single
format character, or followed by a set of format
characters surrounded by `{' and `}' as
separators. The format characters are:
- s
file name
- V
old version number (pre-checkin)
- v
new version number (post-checkin)
All other characters that appear in a format string
expand to an empty field (commas separating fields are
still provided).
For example, some valid format strings are `%',
`%s', `%{s}', and `%{sVv}'.
The output will be a space separated string of tokens enclosed in
quotation marks (").
Any embedded dollar signs ($), backticks (`),
backslashes (\), or quotation marks will be preceded
by a backslash (this allows the shell to correctly parse it
as a single string, reguardless of the characters it contains).
For backwards compatibility, the first
token will be the repository subdirectory. The rest of the
tokens will be comma-delimited lists of the information
requested in the format string. For example, if
`/u/src/master/yoyodyne/tc' is the repository, `%{sVv}'
is the format string, and three files (ChangeLog,
Makefile, foo.c) were modified, the output
might be:
| "yoyodyne/tc ChangeLog,1.1,1.2 Makefile,1.3,1.4 foo.c,1.12,1.13"
|
As another example, `%{}' means that only the
name of the repository will be generated.
Note: when CVS is accessing a remote repository,
`loginfo' will be run on the remote
(i.e., server) side, not the client side (see section Remote repositories).