$Id: Checkouts,v 1.6 2003/03/04 19:26:13 jdp Exp $ Copyright 1999-2003 John D. Polstra Format of the "checkouts" Files The checkouts file is a printable ASCII file. Each record occupies one line. Each record contains a number of fields separated by whitespace. The first field specifies the type of the record, which determines the number of other fields and their interpretations. The first record specifies the version number of the checkouts file format. This document describes the current version. The CVSup client can read any version of the file, but it always writes the file using the current version. Each record after the first one represents a file or a directory. These records are strictly ordered as if a depth-first tree walk had been performed with each directory being scanned in sorted order by filename. Each directory is listed twice, on the descent into the directory and on the ascent back out of it. All filenames are relative to the "prefix" directory. The filenames correspond to the files on the server host; i.e., in checkout mode the name of the RCS file is used, not the name of the client's checked-out file. During the virtual tree walk, any files in Attic directories are listed as if they were in the main directory, and in their proper sequence relative to the other files in the main directory. That is, attic residency is treated as an attribute of the file rather than as the location of the file. Thus, "Attic" directories are omitted from the filenames. Instead, attic residency is indicated by the record type. The types of records are as follows: F File format version identifier D Go down into a subdirectory U Go up out of a subdirectory V RCS file that is alive (not in Attic) v RCS file that is dead (in Attic) C Checked-out file that is alive c Checked-out file that is dead In checkout mode, there are no "V" or "v" records; in RCS mode, there are no "C" or "c" records. Note that files with "c" records do not actually exist on the client. Many fields contain so-called "attributes". These are generalized encodings of various file attributes such as modification time, mode, owner, group, size, and so forth. The encoding of attributes is described elsewhere. The following describes each type of record and the fields it contains. F File format version identifier version An integer corresponding to the format of the checkouts file, so that the format can be changed in the future. This document describes version 5. scanTime An integer containing the time reported by the server when it began scanning its file tree for the update that created this checkouts file. It is in standard Unix time format (seconds since the epoch). Currently unused. D Go down into a subdirectory name The name of the directory. U Go up out of a subdirectory name The name of the directory. attr The directory's attributes on the client. V RCS file that is alive (not in Attic) name The name of the RCS file. attr The file's attributes on the client. v RCS file that is dead (in Attic) name The name of the RCS file, with "Attic/" omitted. attr The file's attributes on the client. C Checked-out file that is alive name The name of the RCS file. tag Tag specified by user, or "." date Date specified by user, or "." rcsAttr Attributes of the server's RCS file. revNum Revision number checked out. revDate Date recorded in the delta. fileAttr Attributes of the client's checked-out file. c Checked-out file that is dead name The name of the RCS file, with "Attic/" omitted. tag Tag specified by user, or "." date Date specified by user, or "." rcsAttr Attributes of the server's RCS file. The end.