バージョンコントロールシステム(version control system)は、ソースファイルの複数のバージョンを記録したり、それらのバージョンの作成日時などや、誰が作成したか、何が変更されたかの説明などを記録できるプログラムのことです。
Emacsのバージョンコントロールのためのインターフェースは、VCと呼ばれます。VCコマンドは、複数の異なるバージョンコントロールシステムで機能します。現在のところ、Bazaar、CVS、Git、Mercurial、Monotone、RCS、SRC、SCCS/CSSC、Subversionがサポートされます。これらの中で、GNUプロジェクトのディストリビューションはCVS、RCS、Bazaarです。
バージョン管理システムで生成されたファイルをvisitすると、自動的にVCが有効になります。VCを無効にするには、カスタマイズ可能な変数vc-handled-backends
をnil
をセットします
(VCのカスタマイズを参照してください)。
カレントバッファーでvisitされているファイルにたいするVC状態の情報を更新するには、コマンドvc-refresh-state
を使用します。Emacsの外(たとえばシェルプロンプト)でバージョンコントロールコマンドを実行したときや、そのバッファーのファイルを別のバージョンコントロールシステム下に置いたとき、バージョンコントロールからそのファイルを完全に削除したときに、このコマンドは有用です。
VCSの制御下にあるファイルを含んだディレクトリーを表示しているDiredバッファー(Dired (ディレクトリーエディター)を参照)では、VCも自動的に有効になります。そのようなDiredでは、このセクションで説明するすべてのVCコマンドを呼び出すことができます。Diredでマークされたすべてのファイル(Diredでのマークとフラグを参照)はカレントのファイルセットに属しているものとみなされて、そのファイルセットのファイルにたいしてVCコマンドが処理を行うのです。これによりファイルのVC状態(VC state)に関わらず、含めたい任意のファイルからVCファイルセットを構築することができます(DiredバッファーからVCコマンドを呼び出した際にマークされたファイルがなければ、バッファーのカレント行に表示されているファイルがそのファイルセットで唯一のファイルとみなされる)。