Each of the 0 or more arguments of the Files attribute denotes one of
the constituents of a version. The file arguments give the
pathnames of files relative to some root directory. The
internal-file-id arguments contain information used by
PRCS to identify versions of individual files.
If F is one of the file arguments, then
no component of F may be `.' or `..'. Unless one of the options
listed for F is :directory (see below), no other file
argument in the Files attribute may begin with `F/'.
The precise format of an internal file identifier is not defined, and is
subject
to change whenever PRCS is revised. Two properties, however, are
guaranteed:
- If a particular internal file identifier describes a file
in one project-version descriptor, it can be copied
verbatim as the internal file identifier for a file (possibly with a
different name)
in another project-version descriptor for the same project in
the same repository.
It will denote a file with the same contents, aside possibly from the
values of certain keywords (see Keywords). As a result, it is
possible to copy an entire project version to another (with another
version number) without checking out the files, simply by copying the
Files attribute of the project-version descriptor.
Likewise, if you wish to change the name of a file from one version to
another, you should reflect the change in the working version of the
project descriptor, keeping its internal file identifier unchanged.
- Each non-null internal file identifier belongs to an internal-file
family. If a working file has a non-null internal file identifier,
then a
prcs checkin will assign it an internal file identifier
(possibly unchanged from that of the working version) in the same
internal-file family. If a working file has a null internal file
identifier (`()'), prcs checkin will put it in a new
internal-file family, otherwise unpopulated. Internal-file families are
useful
for certain kinds of version comparisons and merges.
The options arguments denote 0 or more labels indicating special
properties of the file. At the moment, four are defined.
:no-keywords
- indicates that keywords in the file are
not to be expanded.
:symlink
- indicates the file is a
symbolic link, which will be recorded at checkin
and reproduced at checkout.
:directory
- indicates that the file is a directory, which
will be created, if necessary, at checkout. This is useful for having empty
directories in your project.
:tag= label
- records label as a piece of user-defined information about the
file. PRCS does not
interpret label; its main use is for filtering in the
prcs execute
subcommand (see execute). There may be any number of
:tag options attached to a file.
The project descriptor (.prj file) is not explicitly included in
the Files attribute. Nevertheless, it is implicitly one of the files in
each project version.
For example,
(Files
(empty () :directory) ; an empty directory
(pointer () :symlink) ; a symbolic link
(realfile () :no-keywords) ; the only real file in the list
)
|