11.1. Administrative Files CVS needs to keep track of what it's doing, so it maintains a number of administrative files. Most of the files are in the CVS subdirectory of each sandbox directory, but there may also be hidden files in the directory itself, with filenames that start with a dot (.). In addition, the user's home directory can contain CVS administrative files that affect all of that user's sandboxes; these filenames are also prefixed with a dot. 11.1.1. Dot Files In client/server mode, all the dot files other than .rhosts should be on the client computer. The .rhosts file should be in the user's home directory on the server computer. These are the dot files in the sandbox directory:
.cvsignore Contains a list of files CVS should not process. This file uses the same format as cvsignore in the repository's CVSROOT directory and may be checked into CVS. See Chapter 6 for more information.
.#filename.revision CVS is built on the philosophy of never fully losing data. So if you get an update that overwrites a project file, and the file is not synchronized with the repository, the original file is stored as .#filename.revision, where revision is the BASE revision of the file. This way the changes you haven't saved in the repository are not lost. These are the dot files in a user's home directory:
.cvsrc Contains a list of CVS commands and the options the user wants as default options for those commands. See Chapter 3 for more information.
.cvsignore Contains a list of files CVS should not process. This file uses the same format as cvsignore in the repository's CVSROOT directory. See Chapter 6 for more information.
.cvswrappers Contains a list of wrappers that affect how a file is stored. The wrappers include a pattern that CVS matches against filenames and a keyword-expansion mode that CVS applies to any file whose name matches the pattern. Wrappers are explained in Chapter 3.
.cvspass Used in pserver remote-access mode. This file contains the user's password for each repository they are logged into, stored in a simple form of encoding. Be aware that the file is human-readable and the passwords are easy to decrypt. See Chapter 8 for more information.
.rhosts Used when connecting with RSH. This file should be in the user's home directory on the server machine, and it should contain the client's computer and username. See Chapter 8 for more information. 11.1.2. CVS Subdirectory Files CVS creates a subdirectory named CVS in every directory of a sandbox. It stores the following sandbox administrative files in this subdirectory:
Base A directory, not a file, that stores the pre-editing revision of any files that are being edited with cvs edit.
Baserev Contains the revision information for every file in the Base directory, in the format name/revision/. Later versions of CVS may add to this format.
Baserev.tmp Changes to the Baserev file are written to Baserev.tmp. CVS then renames Baserev.tmp to Baserev, which overwrites the original Baserev.
Checkin.prog Used if the current sandbox was checked out as a module and the modules file in the repository's CVSROOT has an -i option for the module the sandbox was checked out as. This file stores the program to be executed when the module is checked in. Checkin.prog is obsolete in CVS 1.11.6 and later.
Entries Contains a line for each file and directory in the relevant sandbox directory. Lines for files have the format: /name/revision/timestamp[+conflict]/options/tagdate Lines for directories have the format: D/name//// There may be text between or after the empty slashes, but in current versions of CVS, this text is ignored. The space is reserved for future expansion.
Entries.Backup Changes to the Entries file are written to Entries.Backup. CVS then renames Entries.Backup to Entries, which overwrites the original Entries.
Entries.Log Used to record planned changes to the Entries file. Lines to be added start with A; lines to be removed start with R. After the A or R comes a space, followed by the line to be added or removed. Third-party programs that read Entries should also check for Entries.Log. If Entries.Log exists, they should read Entries, apply the changes from Entries.Log, and then rewrite Entries and remove Entries.Log.
Entries.Static If this file exists, CVS did not receive a complete set of files from the repository and the sandbox directory that is the parent to the current CVS directory is static (i.e., CVS will not create new files in this directory). This setting can be cleared by using update -d to download a full set of files and subdirectories for the parent directory to the current CVS directory.
Notify Contains any cvs watch notifications that have not yet been sent to the server.
Notify.tmp Changes to the Notify file are written to Notify.tmp. CVS then renames Notify.tmp to Notify, which overwrites the original Notify.
Repository Contains the path from the repository root to the repository directory that the relevant sandbox directory is a reflection of. This file may contain the full path, including the path to the root of the sandbox's repository. If the current sandbox directory does not have a related repository directory, this file contains the string CVSROOT/Emptydir.
Root Contains the path to the root of the sandbox's repository.
Tag Used to store directory-specific sticky tags and dates, so that CVS can add them to new files that you add to the directory. This file is most often used when the directory is part of a branch sandbox. If the first character in the file is T, the file refers to a branch tag. N is a nonbranch tag, and D is a date.
Template In client/server mode, this file stores the login template specified in the rcsinfo file in the repository's CVSROOT directory.
Update.prog Used if the modules file in CVSROOT specifies the -u option for the current sandbox's module. Update.prog stores the program to be executed when this module is updated. This file is obsolete in CVS 1.11.6 and later. In addition, there is one file which can be stored in the CVS subdirectory in the repository:
fileattr Stores the settings for the cvs watch family of commands. |