SYNOPSIS

ident [ -q ] [ -V ] [ file .\|.\|. ]

DESCRIPTION

ident searches for all instances of the pattern $keyword: text $ in the named files or, if no files are named, the standard input.

These patterns are normally inserted automatically by the \*r command co(1), but can also be inserted manually. The option -q suppresses the warning given if there are no patterns in a file. The option -V prints \*r's version number.

ident works on text files as well as object files and dumps. For example, if the C program in f.c contains

  • #include <stdio.h>

    static char const rcsid[] =

      "$Id: f.c,v \*(iD $";
    

    int main() { return printf("%s\n", rcsid) == EOF; }

and f.c is compiled into f.o, then the command

  • ident f.c f.o

will output

f.c:
    $Id: f.c,v \*(iD $
f.o:
    $Id: f.c,v \*(iD $

If a C program defines a string like rcsid above but does not use it, lint(1) may complain, and some C compilers will optimize away the string. The most reliable solution is to have the program use the rcsid string, as shown in the example above.

ident finds all instances of the $keyword: text $ pattern, even if keyword is not actually an \*r-supported keyword. This gives you information about nonstandard keywords like $XConsortium$.

The pattern normally requires a colon and a space immediately after the keyword and a space immediately before the terminating $, but for Subversion 1.2 (and later) compatibility, ident will also recognize the pattern $keyword:: text $ (i.e., two colons and a space) and the pattern $keyword:: text #$ (likewise, with a hash before the terminating $). These are the fixed-width keyword syntax. To summarize, the three recognized patterns are:

  • $keyword: text $

    $keyword:: text $

    $keyword:: text #$

KEYWORDS

Here is the list of keywords currently maintained by co(1). All times are given in Coordinated Universal Time (\*u, sometimes called \s-1GMT\s0) by default, but if the files were checked out with co's -zzone option, times are given with a numeric time zone indication appended.

$Author$

The login name of the user who checked in the revision.

$Date$

The date and time the revision was checked in.

$Header$

A standard header containing the full \*o name, the revision number, the date and time, the author, the state, and the locker (if locked).

$Id$

Same as $Header$, except that the \*o name is without directory components.

$Locker$

The login name of the user who locked the revision (empty if not locked).

$Log$

The log message supplied during checkin. For ident's purposes, this is equivalent to $RCSfile$.

$Name$

The symbolic name used to check out the revision, if any.

$RCSfile$

The \*o name without directory components.

$Revision$

The revision number assigned to the revision.

$Source$

The full \*o name.

$State$

The state assigned to the revision with the -s option of rcs(1) or ci(1).

co(1) represents the following characters in keyword values by escape sequences to keep keyword strings well-formed.

char	escape sequence
tab	\t
newline	\n
space	\040
$	\044
\	\\

IDENTIFICATION

Author: Walter F. Tichy.

Manual Page Revision: \*(Rv; Release Date: \*(Dt.

Copyright © 2010-2014 Thien-Thi Nguyen.

Copyright © \*(EY Paul Eggert.

Copyright © 1982, 1988, 1989 Walter F. Tichy.

RELATED TO ident…

ci(1), co(1), rcs(1), rcsdiff(1), rcsmerge(1), rlog(1), rcsfile(5).

Walter F. Tichy, \*r\*-A System for Version Control, Software\*-Practice & Experience 15, 7 (July 1985), 637-654.

The full documentation for \*r is maintained as a Texinfo manual. If the info(1) and \*r programs are properly installed at your site, the command

  • info rcs

should give you access to the complete manual. Additionally, the \*r homepage:

  • http://www.gnu.org/software/rcs/

has news and links to the latest release, development site, etc.