home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam    

Book HomeLinux in a NutshellSearch this book

14.8. General RCS Specifications

This section discusses:

  • Keyword substitution

  • Revision numbering

  • Specifying the date

  • Specifying states

  • Standard options and environment variables

14.8.1. Keyword Substitution

RCS lets you place keyword variables in your working files. These variables are later expanded into revision notes. You can then use the notes either as embedded comments in the input file or as text strings that appear when the output is printed. To create revision notes via keyword substitution, follow this procedure:

  1. In your working file, type any of the keywords listed in the next section.

  2. Check the file in.

  3. Check the file out again. Upon checkout, the co command expands each keyword to include its value. That is, co replaces instances of:



  4. Subsequent checkin and checkout of a file will update any existing keyword values. Unless otherwise noted later, existing values are replaced by new values.


Note: Many RCS commands have a -k option that provides more flexibility during keyword substitution. Example values

Let's assume that the file /projects/new/chapter3 has been checked in and out by a user named daniel. Here's what keyword substitution would produce for each keyword, for the second revision of the file:

$Author: daniel $

$Date: 2001/07/05 14:25:39 $

$Header: /projects/new/chapter3,v 1.2 2000/02/25 18:21:10 daniel \
    Exp Locker: daniel $

$Id: chapter3,v 1.2 2001/07/05 14:25:39 daniel Exp $

$Locker:  $

$Log: chapter3,v $
Revision 1.2  2001/07/05 14:25:39  daniel
Added section on error handling

#Revision 1.1  2000/02/25 16:49:59  daniel
#Initial revision

$RCSfile: chapter3,v $

$Revision: 1.2 $

$Source: /projects/new/chapter3,v $

$State: Exp $

14.8.2. Revision Numbering

Unless told otherwise, RCS commands typically operate on the latest revision. Some commands have an -r option that is used to specify a revision number. In addition, many options accept a revision number as an optional argument. (In the command summary, this argument is shown as [R].) Revision numbers consist of up to four fields, release, level, branch, and sequence, but most revisions consist of only the release and level.

For example, you can check out revision 1.4 as follows:

co -l -r1.4 ch01

When you check it in again, the new revision will be marked as 1.5. But suppose the edited copy needs to be checked in as the next release. You would type:

ci -r2 ch01

This creates revision 2.1. You can also create a branch from an earlier revision. The following command creates revision

ci -r1.4.1 ch01

Numbers are not the only way to specify revisions, though. You can assign a text label as a revision name, using the -n option of ci or rcs. You can also specify this name in any option that accepts a revision number for an argument. For example, you could check in each of your C programs, using the same label regardless of the current revision number:

ci -u -nPrototype *.c

In addition, beginning with RCS Version 5.6, you can specify a $, which means the revision number is extracted from the keywords of a working file. For example:

rcsdiff -r$ ch01

compares ch01 to the revision that is checked in. You can also combine names and symbols. The command:

rcs -nDraft:$ ch*

assigns a name to the revision numbers associated with several chapter files.

14.8.5. Standard Options and Environment Variables

RCS defines the environment variable RCSINIT, which is used to set up default options for RCS commands. If you set RCSINIT to a space-separated list of options, they will be prepended to the command-line options you supply to any RCS command. Three options are useful to include in RCSINIT: -q, -V, and -x. They can be thought of as standard options because most RCS commands accept them. Note that -V was new in RCS Version 5 and that -x was new in Version 5.6.


Quiet mode; don't show diagnostic output. R specifies a file revision.


Emulate version n of RCS; useful when trading files between systems that run different versions. n can be 3, 4, or 5. If n is omitted, the command prints the version number of this version of RCS.


Specify an alternate list of suffixes for RCS files. Each suffix is separated by a /. On Unix systems, RCS files normally end with the characters ,v. The -x option provides a workaround for systems that don't allow a comma (,) character in filenames.


Specify the format of the date in keyword substitution. If empty, the default is to output the UTC time with no zone indication. With an argument of LT, the local time zone will be used to output an ISO 8601 format, with an indication of the separation from UTC. You may also specify a numeric UTC offset. For example, -z+4:30 would output a string such as: 1998-11-24 02:30:00+4:30.

For example, when depositing a working file into an RCS file, the command:

ci -x,v/ ch01     (second suffix is blank)

searches in order for the RCS filenames:


Library Navigation Links

Copyright © 2001 O'Reilly & Associates. All rights reserved.