28.1.10.1 The VC Directory Buffer
The VC Directory buffer contains a list of version-controlled files
and their version control statuses. It lists files in the current
directory (the one specified when you called C-x v d
) and its
subdirectories, but only those with a noteworthy status. Files
that are up-to-date (i.e., the same as in the repository) are
omitted. If all the files in a subdirectory are up-to-date, the
subdirectory is not listed either. As an exception, if a file has
become up-to-date as a direct result of a VC command, it is listed.
Here is an example of a VC Directory buffer listing:
./
edited configure.ac
* added README
unregistered temp.txt
src/
* edited src/main.c
Two work files have been modified but not committed:
configure.ac
in the current directory, and main.c
in the
src/
subdirectory. The file named README
has been added
but is not yet committed, while temp.txt
is not under version
control (see Registering a File for Version Control).
The ‘ *
’ characters next to the entries for README
and
src/main.c
indicate that the user has marked these files as
the current VC fileset
(see VC Directory Commands).
The above example is typical for a decentralized version control
system like Bazaar, Git, or Mercurial. Other systems can show other
statuses. For instance, CVS shows the ‘ needs-update
’ status if
the repository has changes that have not been applied to the work
file. RCS and SCCS show the name of the user locking a file as its
status.
On CVS, the vc-dir
command normally contacts the repository,
which may be on a remote machine, to check for updates. If you change
the variable vc-cvs-stay-local
to nil
(see Options specific for CVS), then Emacs avoids contacting a remote repository when
generating the VC Directory buffer (it will still contact it when
necessary, e.g., when doing a commit). This may be desirable if you
are working offline or the network is slow.
The VC Directory buffer omits subdirectories listed in the variable
vc-directory-exclusion-list
. Its default value contains
directories that are used internally by version control systems.