前: Renaming and VC, 上: Miscellaneous VC
版を識別する文字列を作業ファイルへ直接入れておくと便利なこともあります。 版管理ヘッダと呼ばれる特別な文字列は、 各版ごとにその版番号で置き換えられます。
RCSを使っていて、かつ、作業ファイルに版管理ヘッダが入っていれば、 Emacsは、版管理ヘッダを使って現在の版とファイルのロック状態を決定できます。 これは、版管理ヘッダがないときにマスタファイルを参照するより、 信頼できます。 複数の枝を使う環境では、 VCが正しくふるまうためには版管理ヘッダが必要です (see Multi-User Branching)。
版管理ヘッダの探索は、変数vc-consult-headers
で制御されます。
nil
以外ならば、編集中の版番号を決定するためにEmacsはヘッダを探します。
nil
を設定すると、この機能はオフになります。
適切なヘッダ文字列を入れるには、コマンドC-x v h
(vc-insert-headers
)を使います。
デフォルトのヘッダ文字列は、
RCSでは`$Id$'、SCCSでは`%W%'です。
変数vc-header-alist
に設定すれば、他のヘッダを指定できます。
この値は、(
program .
string)
の形式の
要素から成るリストです。
ここで、programはRCS
またはSCCS
であり、
stringは使用する文字列です。
1つの文字列のかわりに、文字列のリストを指定することもできます。 そうすると、リストの各文字列は、別々の行に別のヘッダとして挿入されます。
この変数に入れる文字列を書くときには、『余分な』バックスラッシュを 使う必要がよくあります。 この文字列を含むEmacs Lispファイルが版管理の下に置かれているときに、 定数中の文字列がヘッダと解釈されることを防ぐためです。
各ヘッダは、ポイント位置の新しい行に、
コメント区切りの内側にタブで囲んで挿入されます。
通常、現在のモードのコメント開始文字列とコメント終了文字列を使いますが、
特定のモードでは、この目的のための特別なコメント区切りがあります。
変数vc-comment-alist
がそれらを指定します。
このリストの各要素は
(
mode starter ender)
という形式です。
変数vc-static-header-alist
は、
バッファ名に基づいた追加の文字列を指定します。
この値は、(
regexp .
format)
の形式の
要素から成るリストでなくてはいけません。
regexpがバッファ名に一致するたびに、
formatをヘッダの一部として挿入します。
バッファ名に一致する各要素とvc-header-alist
に指定された各文字列ごとに
ヘッダ行を挿入します。
vc-header-alist
の文字列を要素の書式formatで処理して
ヘッダ行を作ります。
vc-static-header-alist
のデフォルト値はつぎのとおりです。
(("\\.c$" . "\n#ifndef lint\nstatic char vcid[] = \"\%s\";\n\ #endif /* lint */\n"))
これは、つぎのようなテキストを挿入します。
#ifndef lint static char vcid[] = "string"; #endif /* lint */
上のテキストは空行で始まっていることに注意してください。
複数の版管理ヘッダをファイルに入れる場合には、
ファイル内ではそれらを一緒にまとめて入れておきます。
revert-buffer
のマーカを保存する機構は、
2つの版管理ヘッダのあいだに置かれたマーカを扱えないこともあります。