5.1 Entering PCL-CVS

Most commands in PCL-CVS require that you have a *cvs* buffer. The commands that you use to get one are listed below. For each, a ‘cvs’ process will be run, the output will be parsed by PCL-CVS, and the result will be printed in the *cvs* buffer (see Buffer contents, for a description of the buffer’s contents).

M-x cvs-update

Run a ‘cvs update’ command. You will be asked for the directory in which the ‘cvs update’ will be run.

M-x cvs-examine

Run a ‘cvs -n update’ command. This is identical to the previous command, except that it will only check what needs to be done but will not change anything. You will be asked for the directory in which the ‘cvs -n update’ will be run.

M-x cvs-status

Run a ‘cvs status’ command. You will be asked for the directory in which the ‘cvs status’ will be run.

M-x cvs-checkout

Run a ‘cvs checkout’ command. You will be asked for the directory in which the ‘cvs update’ will be run and the module to be checked out.

M-x cvs-quickdir

Populate the *cvs* buffer by just looking at the CVS/Entries files. This is very much like cvs-examine except that it does not access the CVS repository, which is a major advantage when the repository is far away. But of course, it will not be able to detect when a file needs to be updated or merged.

The first four of those commands are also reachable from the menu bar under ‘Tools->PCL-CVS’. Finally, an alternative way is to visit the CVS administrative subdirectory in your work area with a simple prefix argument. For example C-u C-x C-f ~/my/work/CVS RET. This by default runs cvs-quickdir but the specific behavior can be changed with cvs-dired-action and cvs-dired-use-hook.

By default, the commands above will descend recursively into subdirectories. You can avoid that behavior by including ‘-l’ in the flags for the command. These flags can be set by giving a prefix argument to the command (e.g., by typing C-u M-x cvs-update RET -l RET).