ChangeLog ファイルを持つプログラムで RCS や CVS を使用している場合(変更履歴を参照)、過去のコミットのバージョン管理ログエントリから変更履歴エントリを生成できます。
なお、この方法はRCSまたはCVSでのみ動作します。ChangeLogファイルへの変更は通常、チェンジセットの一部としてコミットされる現代的なチェンジセットベースのバージョン管理システムでは、この手順は特に不適切です。その場合は、まずチェンジログエントリを記述し、コミット時にそれらを‘*vc-log*’バッファに取り込んでください(ログエントリバッファの機能を参照)。
カレントディレクトリの ChangeLog
ファイルを参照し、そのディレクトリ内の登録済みファイルについて、最新の変更ログエントリ (vc-update-change-log) 以降にコミットされたバージョンの新規エントリを作成します。
上記と同様だが、現在のバッファのファイルに関するエントリのみが表示される。
例えば、ChangeLog の1行目の日付が 1999-04-10 であり、それ以降の唯一のチェックインが、1999-05-22 に Nathaniel Bowditch によって rcs2log に対して行われ、ログエントリに ‘Ignore log messages that start with '#'.’ と記録されていたとします。このとき、C-x v a はこの ChangeLog エントリを挿入します:
1999-05-22 Nathaniel Bowditch <nat@apn.org>
* rcs2log: Ignore log messages that start with '#'.
バージョン管理ログのエントリに関数名(行頭の括弧内)が指定されている場合、その内容はChangeLogエントリに反映されます。例えば、vc.elのログエントリが‘(vc-do-command): Check call-process status.’である場合、ChangeLogエントリは次のようになります:
1999-05-06 Nathaniel Bowditch <nat@apn.org>
* vc.el (vc-do-command): Check call-process status.
C-x v a が複数の変更履歴エントリを一括して追加する場合、それらがすべて同一の作成者によってほぼ同時期にチェックインされたものであれば、関連するエントリをグループ化します。こうした複数のファイルのエントリがすべて同じ内容である場合は、それらを単一のエントリに統合します。