Previous: , Up: commit files   [Contents][Index]

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 commit 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:


file name


old version number (pre-checkin)


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 Remote repositories).

Previous: , Up: commit files   [Contents][Index]