GNU Info

Info Node: (cvsbook.info)Working Copy Files

(cvsbook.info)Working Copy Files


Next: Environment Variables Prev: Run Control Files Up: CVS Reference
Enter node , (file) or (file)node

Working Copy Files
==================

The CVS/ administrative subdirectories in each working copy contain some
subset of the following files.

   * CVS/Base/

   * CVS/Baserev

   * CVS/Baserev.tmp

   * CVS/Checkin.prog

   * CVS/Entries

   * CVS/Entries.Backup

   * CVS/Entries.Log

   * CVS/Entries.Static

   * CVS/Notify

   * CVS/Notify.tmp

   * CVS/Repository

   * CVS/Root

   * CVS/Tag

   * CVS/Template

   * CVS/Update.prog

Here is what each file or directory does:

`CVS/Base/'  (directory)
------------------------

If watches are on, `cvs edit' stores the original copy of the file in
this directory.  That way, `cvs unedit' can work even if it can't reach
the server.

`CVS/Baserev'
-------------

Lists the revision for each file in `Base/'.  Each line looks like this:

     FILE/REVISION/EXPANSION

EXPANSION is currently ignored to allow for, well, future expansion.

`CVS/Baserev.tmp'
-----------------

This is the temp file for the preceding.  (See `CVS/Notify.tmp' or
`CVS/Entries.Backup' later on for further explanation.)

`CVS/Checkin.prog'
------------------

Records the name of the program specified by the -i option in the
modules file.  (See the Note: Repository Administrative Files section
in this chapter.)

`CVS/Entries'
-------------

Stores the revisions for the files in this directory.  Each line is of
the form:

     [CODE_LETTER]/FILE/REVISION/DATE/[KEYWORD_MODE]/[STICKY_OPTION]

If CODE_LETTER is present, it must be `D' for directory (anything else
is silently ignored by CVS, to allow for future expansion), and the
rest of the items on the line are absent.

This file is always present.

`CVS/Entries.Backup'
--------------------

This is just a temp file.  If you're writing some program to modify the
`Entries' file, have it write the new contents to `Entries.backup' and
then atomically rename it to `Entries'.

`CVS/Entries.Log'
-----------------

This is basically a patch file to be applied to `Entries' after
`Entries' has been read (this is an efficiency hack, to avoid having to
rewrite all of `Entries' for every little change).  The format is the
same as `Entries', except that there is an additional mandatory code
letter at the front of every line: An `A' means this line is to be
added to what's in `Entries'; `R' means it's to be removed from what's
in `Entries'.  Any other letters should be silently ignored, to allow
for future expansion.

`CVS/Entries.Static'
--------------------

If this file exists, it means only part of the directory was fetched
from the repository, and CVS will not create additional files in that
directory.  This condition can usually be cleared by using `update -d'.

`CVS/Notify'
------------

Stores notifications that have not yet been sent to the server.

`CVS/Notify.tmp'
----------------

Temp file for `Notify'.  The usual procedure for modifying `Notify' is
to write out `Notify.tmp' and then rename it to `Notify'.

`CVS/Repository'
----------------

The path to the project-specific subdirectory in the repository.  This
may be an absolute path, or it may be relative to the path given in
Root.

This file is always present.

`CVS/Root'
----------

This is the repository; that is, the value of the `$CVSROOT'
environment variable or the argument to the -d global option.

This file is always present.

`CVS/Tag'
---------

If there is a sticky tag or date on this directory, it is recorded in
the first line of the file.  The first character is a single letter
indicating the type of tag: `T', `N', or `D', for branch tag, nonbranch
tag, or date respectively.  The rest of the line is the tag or date
itself.

`CVS/Template'
--------------

Contains a log message template as specified by the rcsinfo file.  (See
Note: Repository Administrative Files earlier in this chapter.)  It
is relevant only for remote working copies; working copies on the same
machine as the repository just read rcsinfo directly.

`CVS/Update.prog'
-----------------

Records the name of the program specified by the -u option in the
modules file.  (See the Note: Repository Administrative Files section
in this chapter.)


automatically generated by info2www version 1.2.2.9