バージョンコントロールシステムを使うプロジェクトは、変更にたいする2つのタイプのログをもつことができます。1つはバージョンコントロールシステムで保守されるログです。変更をコミットするたびに、変更にたいするログエントリー(log entry)を入力します(Log Entryバッファーの機能を参照してください)。これはバージョンコントロールログ(version control log)と呼ばれます。
もう1つの種類のログは、ChangeLogです(変更ログを参照してください)。これはプログラムの大きな部分(通常は1つのディレクトリーと、そのサブディレクトリー)にたいする変更の記録を、年代順に記録します。小さなプログラムは、1つのChangeLogを使用するでしょう。大きなプログラムは、主要なディレクトリーごとにChangeLogをもつかもしれません。変更ログを参照してください。プログラマーは、バージョンコントロールシステムのずっと前からChangeLogを使ってきました。
変更セットベースのバージョンシステムは、通常システム全体にたいして変更セットベースの修正ログを保守します。これはChangeLogを冗長なものにします。ChangeLogを残す利点の1つは、他のディレクトリーとは別に、1つのディレクトリーの履歴トランザクションが見れるのは便利なときがあるからです。他の利点として、多くのバージョンコントロールシステムはコミットログを特定できないからです。
バージョンコントロールで管理されるプロジェクトは、バージョンコントロールログだけを使用するか、両方の種類のログを使用します。あるファイルにたいしては1つのログを使い、他のファイルにたいしては別の方法を使うこともできます。プロジェクトごとに、したがうべきポリシーがあります。
両方を使うというポリシーの場合は通常、変更にたいして1度だけエントリーを書いて、それを両方のログに書き込みたいと思うでしょう。ChangeLogにエントリーを記述して、変更をコミットするときにC-c C-aでログバッファーにコピーできます。または変更をコミットするときログバッファーにエントリーを記述して、(C-c C-wの助けを借りて)後でC-x v aコマンドでそれをChangeLogにコピーできます (変更ログとVCを参照してください)。