バージョン管理システムを使用するプロジェクトでは、変更に関するログを2種類持つことができます。一つはバージョン管理システムによって管理されるログです。変更をコミットするたびに、その変更に関するログエントリを記入します(ログエントリバッファの機能を参照)。これはバージョン管理ログと呼ばれます。
もう一方のログは、ファイル ChangeLog です(変更履歴を参照)。これは、プログラムの大部分――通常は1つのディレクトリとそのサブディレクトリ――に対するすべての変更を時系列で記録するものです。小規模なプログラムでは1つの ChangeLog ファイルを使用しますが、大規模なプログラムでは、主要なディレクトリごとに ChangeLog ファイルを設ける場合があります。変更履歴を参照してください。プログラマーは、バージョン管理システムが登場するずっと前から変更履歴を利用してきました。
チェンジセットベースのバージョン管理システムでは、通常、システム全体のチェンジセットベースの変更履歴が保持されるため、変更履歴ファイルはある意味で冗長になります。こうしたシステムが維持している利点の一つは、単一のディレクトリのトランザクション履歴を、他のディレクトリのものとは別に確認できることが有用な場合がある点です。もう一つの利点は、多くのバージョン管理システムにおいて、コミットログの誤りを修正できないことです。
バージョン管理が行われているプロジェクトでは、バージョン管理ログのみを使用することも、両方の種類のログを使用することも可能です。ファイルによっては一方の方法で管理し、別のファイルではもう一方の方法で管理することもできます。プロジェクトごとに方針がありますので、それに従ってください。
両方を併用する方針の場合、通常は各変更に対してエントリを一度だけ書き込み、それを両方のログに記録します。エントリを ChangeLog に書き込み、変更をコミットする際に C-c C-a でログバッファにコピーすることができます(ログエントリバッファの機能 を参照)。あるいは、変更をコミットする際に(C-c C-w を利用して)ログバッファにエントリを書き込み、後で C-x v a コマンドを使用してそれを ChangeLog にコピーすることもできます(変更ログとVC を参照)。