VCに変更のコミットを指示したとき、*vc-log*という名前のバッファーがポップアップします。このバッファーには、行った変更を説明するログエントリー(log
entry)を書き込みます。書き込んだらC-c C-c (log-edit-done
)とタイプして,
そのバッファーを抜けて、ログエントリーとともに変更をコミットします。
*vc-log*バッファーのためのメジャーモードはLog Editモードで、これはTextモードの変種です(Textモードを参照してください)。Log
Editモードに入ると、Emacsはフックtext-mode-hook
およびvc-log-mode-hook
を実行します(フックを参照してください)。
*vc-log*バッファーでは、1行以上のヘッダー行(header lines)を記入できます。これにはバージョンコントロールシステムにより提供される、追加の情報を指定します。各ヘッダー行は、そのバッファーの最初の1行を占めなければなりません。ヘッダー行でない最初の行は、ログエントリーの開始として扱われます。たとえば以下のヘッダー行は、その変更が他の開発者によるものだということを示します:
Author: J. R. Hacker <jrh@example.com>
‘Author’ヘッダーとは別に、Emacsは‘Summary’ヘッダー(changesetの1行要約)、‘Date’ヘッダー(手入力で指定されたコミット日時)、‘Fixes’ヘッダー(変更によるバグフィクスへの参照)を認識します。すべてのバージョンコントロールシステムが、すべてのヘッダーを認識するわけではありません。そのシステムでサポートされていないヘッダーを指定した場合、それはログエントリーの一部として扱われます。
*vc-log*バッファーにいる間は、カレントVCファイルセット(current VC fileset)とは、C-c C-cとタイプすることによりコミットされるファイルセットだと考えられます。そのVCファイルセットのファイル一覧を閲覧するには、C-c C-f
(log-edit-show-files
)とタイプします。そのVCファイルセットと、編集を開始したバージョンとのdiffを閲覧するには、C-c
C-d (log-edit-show-diff
)とタイプしてください。
VCファイルセットのdiffにもとづいて変更されたすべてのファイルと関数をリストする雛形(skeleton)となるChangeLogエントリーを生成してChangeLogエントリー生成の助けとするには、C-c
C-w
(log-edit-generate-changelog-from-diff
)とタイプします。空のままの連続したエントリーはM-q
(fill-paragraph
)によって結合されます。この雛形には、デフォルトではディレクトリー部分がないファイル名だけが含まれます。VCルートまでのディレクトリー部分を前置したければ、diff-add-log-use-relative-names
をカスタマイズしてください。
VCファイルセットが1つ以上のChangeLog(変更ログを参照してください)ファイルを含む場合、C-c
C-a
(log-edit-insert-changelog
)とタイプすると、関連するエントリーを、*vc-log*バッファーに引用します。各ChangeLogファイルの一番上のアイテムが、今日の日付でユーザー名があなたの場合、このコマンドはコミットされるファイルにマッチするエントリーのアイテムを検索して、それを挿入します。
CVSまたはRCSを使用している場合は、反対のこと — Log EditバッファーからChangeLogエントリーを生成 —
を行います。変更ログとVCを参照してください。
コミットを中止するには、そのバッファーで単にC-c C-cをタイプしないで、バッファーを切り替えて他の編集を行うことができます。他のコミットを試みなければ、編集していたエントリーは*vc-log*に残っているので、後でそのバッファーに戻ってコミットを完了できます。
コミットコメントをコピーするために、以前のログエントリーの履歴を閲覧することもできます。これは、似たようなコメントで複数のコミットを行いたいとき便利です。これを行うコマンドM-n、M-p、M-s、M-rは、これらがミニバッファーの外で使用される点を除けば、ミニバッファーのヒストリーコマンド(ミニバッファーヒストリーを参照してください)と同様です。