Most VC commands operate on VC filesets. A VC fileset is a collection of one or more files that a VC operation acts on. When you type VC commands in a buffer visiting a version-controlled file, the VC fileset is simply that one file. When you type them in a VC Directory buffer, and some files in it are marked, the VC fileset consists of the marked files (see VC Directory Mode).
On modern changeset-based version control systems (see VCS Changesets), VC commands handle multi-file VC filesets as a group. For example, committing a multi-file VC fileset generates a single revision, containing the changes to all those files. On older file-based version control systems like CVS, each file in a multi-file VC fileset is handled individually; for example, a commit generates one revision for each changed file.
The principal VC command is a multi-purpose command, C-x v v
vc-next-action), which performs the “most appropriate”
action on the current VC fileset: either registering it with a version
control system, or committing it, or unlocking it, or merging changes
into it. The precise actions are described in detail in the following
subsections. You can use C-x v v either in a file-visiting
buffer or in a VC Directory buffer.
Note that VC filesets are distinct from the “named filesets” used for viewing and visiting files in functional groups (see Filesets). Unlike named filesets, VC filesets are not named and don't persist across sessions.