Many of the commands work on the current set of selected files which can be either the set of marked files (if any file is marked and marks are not ignored) or whichever file or directory the cursor is on.
If a directory is selected but the command cannot be applied to a directory, then it will be applied to the set of files under this directory which are in the *cvs* buffer.
Furthermore, each command only operates on a subset of the selected
files, depending on whether or not the command is applicable to
each file (based on the file’s status). For example,
cvs-mode-commit
is not applicable to a file whose status is
‘Need-Update’. If it should happen that PCL-CVS guesses the
applicability wrong, you can override it with the special prefix
cvs-mode-force-command
normally bound to M-f (and file a
bug report). The applicability rule can be slightly changed with
cvs-allow-dir-commit
and cvs-force-dir-tag
.
By default, marks are always in effect (you may change this, however, by
setting the variable cvs-default-ignore-marks
) except for the
commands that ‘tag’ or ‘diff’ a file (which can be changed
with the variable cvs-invert-ignore-marks
).
In addition, you may use the special prefix cvs-mode-toggle-marks
normally bound to T to toggle the use of marks for the following
command.
This scheme might seem a little complicated, but once one gets used to it, it is quite powerful.
For commands to mark and unmark files, see Marking files.