ChangeLogファイル (変更ログを参照してください)をもつプロググラムにたいしてRCSやCVSを使用する場合、 バージョンコントロールの以前のコミットのログエントリーから、ChangeLogのエントリーを生成することができます。
これはRCSとCVSだけで機能することに注意してください。この手段は特に、現代的な変更セットベースのバージョンコントロールシステムには不適切です。なぜなら、ChangeLogファイルへの変更自体が、通常は変更セットの一部としてコミットされるからです。この場合、最初にChangeLogエントリーを記述して、コミットするときにそれを‘*vc-log*’バッファーに引用します (Log Entryバッファーの機能を参照してください)。
カレントディレクトリーのChangeLogファイルをvisitして、そのディレクトリーの登録されたファイルにたいして、最新のChangeLogエントリー以降にコミットされたバージョンにたいする、新しいエントリーを作成します。(vc-update-change-log
)。
上記と同様ですが、カレントバッファーのファイルにたいするエントリーだけを探します。
たとえば、ChangeLogの最初の行の日付が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が複数のChangeLogエントリーを1度に追加するとき、それらがすべて同じ作者に、ほぼ同じ日時にチェックインされている場合、関連するログエントリーとしてそれらをグループ化します。複数のファイルにたいするログエントリーがすべての同じテキストの場合、それらを1つのエントリーにまとめます。