VC Directoryバッファーは、バージョンコントロールされたファイルと、それらのバージョンコントロール状態を含みます。これは、(C-x v dを呼び出すことにより指定される)カレントディレクトリーの、注目すべき状態のファイルとサブディレクトリーをだけリストします。最新のファイル(レポジトリのものと同じ)は省略されます。サブディレクトリーのファイルがすべて最新の場合、そのサブディレクトリーもリストされません。例外として、VCコマンドの直接の結果として最新になったファイルはリストされます。
以下はVC Directoryバッファーのリストの例です:
./ edited configure.ac * added README unregistered temp.txt src/ * edited src/main.c
2つの作業ファイル、カレントディレクトリーのconfigure.acと、サブディレクトリーsrc/のmain.cは、変更されていますがコミットされていません。READMEという名前のファイルは追加されましたが、まだコミットされていません。そしてtemp.txtはバージョンコントロールの配下にありません(バージョンコントロールへのファイルの登録を参照してください)。
エントリーREADMEおよびsrc/main.cの隣の‘*’という文字は、ユーザーがそれらのファイルをカレントVCファイルセットとしてマークしたことを示します (VC Directoryコマンドを参照してください)。
上記は、Bazaar、Git、Mercurialのような分散型のバージョンコントロールシステムでの典型的な例です。他のシステムでは、他の状態も見られます。たとえばCVSは、レポジトリが変更されていて、それがまだ作業ファイルに適用されていないときは、‘needs-update’という状態を表示します。RCSとSCCSは、ロックされているファイルの状態に、ロックしているユーザーの名前を表示します。
CVSでは通常、vc-dir
コマンドは更新のチェックのために、おそらくはリモートマシン上にあるであろうレポジトリにアクセスします。変数vc-cvs-stay-local
をnil
(CVSに特有のオプションを参照)に変更すると、EmacsはVC
Directoryバッファーが生成されるときのリモートのレポジトリへのアクセスを避けます(コミットを行うときなど、必要なときはアクセスします)。これは、オフラインで作業していたり、ネットワークが遅いときは望ましいでしょう。
VC
Directoryバッファーは、変数vc-directory-exclusion-list
にリストされているサブディレクトリーを省略します。この変数のデフォルト値には、バージョンコントロールシステムにより内部的に使用されるディレクトリーが含まれています。