Subversion、CVS、RCS、SCCSでは、バージョンヘッダーと呼ばれる特定の特殊な文字列を作業ファイルに記述できます。ファイルがコミットされると、バージョン管理システムが自動的にリビジョン番号、コミットを行ったユーザー名、およびその他の関連情報をバージョンヘッダーに書き込みます。
VCは通常、バージョンヘッダーの情報は使用しません。例外として、RCSを使用する場合、EmacsはRCSマスターファイルよりも信頼性が高いことが多いため、バージョンヘッダーが存在する場合はそれを用いてファイルのバージョンを判定します。このようにバージョンヘッダーを使用することを抑制するには、変数
vc-consult-headers を nil
に変更してください。これにより、VCは常にファイルのパーミッションを使用する(パーミッションを信頼するように設定されている場合)か、あるいはマスターファイルを確認します。
現在のバッファに適切なヘッダー文字列を挿入するには、M-x vc-insert-headers
コマンドを使用します。このコマンドは Subversion、CVS、RCS、および SCCS でのみ動作します。変数 vc-backend-header
には、バージョンヘッダーに挿入するキーワードのリストが含まれています。例えば CVS では vc-cvs-header が使用され、そのデフォルト値は '("\$Id\$") です(CVS–Concurrent Versions System の キーワード置換
を参照してください)。(追加のバックスラッシュは、それを定義する Emacs Lisp
ファイルがバージョン管理されている場合に、文字列定数がヘッダーとして解釈されるのを防ぐためです。)vc-insert-headers
コマンドは、リスト内の各キーワードを、ポイント位置の新しい行に、タブで囲んで、必要に応じてコメント区切り記号の中に挿入します。
変数 vc-static-header-alist
は、バッファ名に基づいて追加する文字列をさらに指定します。その値は、(regexp . format)
形式の要素からなるリストである必要があります。regexp がバッファ名に一致するたびに、format もバージョンヘッダーの一部として挿入されます。format 内の ‘%s’
は、ファイルのバージョン管理方式に置き換えられます。