Next: Populate-Ignore attribute, Previous: Checkin-Time and Checkin-Login attributes, Up: Descriptors
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 )