The shadow file

The CVSROOT/shadow file is used by the checkout plugin to specify directories that will be automatically updated on checkout or tag.

In order for the shadow file to have any effect the "Automatic checkout extension" plugin must be enabled in the CVSNT Server control panel.

Keeping a checked out copy

It is often useful to maintain a directory tree which contains files which correspond to the latest version in the repository. For example, other developers might want to refer to the latest sources without having to check them out, or you might be maintaining a web site with cvsnt and want every checkin to cause the files used by the web server to be updated.

The way to do this is by having a line in the CVSROOT/shadow. Here is an example (this should all be on one line):

^cyclic-pages HEAD /u/www/local-docs

This will cause checkins to repository directories starting with cyclic-pages to update the checked out tree in /u/www/local-docs.

Note that if the shadow copy does not exist already it will be created by the execution of the shadow command. Likewise if a shadow copy exists and new directories have been added to the module then these directories and files will also be checked out into the shadow copy. So it will always be a true representation of the current state of the module.

The shadow file works only on the physical file system level (inside the repository). This means that a module specified in the regular expression must match a physical module name in order to be recognized.

For example if you have created virtual modules inside the CVSROOT/modules file or CVSROOT/modules2 file you cannot specify such a module name in the shadow file.