初期のバージョン管理システムは、各プロジェクトに全開発者が利用するリポジトリが1つだけ存在する集中型モデルに基づいて設計されていた。SCCS、RCS、CVS、Subversion、SRCはいずれもこの種のモデルを採用している。その欠点の一つは、リポジトリが信頼性と効率性のボトルネックとなる点である。
GNU Archは分散型あるいは非中央集権型のバージョン管理という概念を切り拓き、それは後にGit、Mercurial、Bazaarに実装されました。プロジェクトは複数の異なるリポジトリを持つ場合があり、これらのシステムはリポジトリ間で、変更履歴の整合性を取ろうとする一種のスーパーマージをサポートしています。実質的に、開発者ごとに1つのリポジトリが存在し、リポジトリのマージがコミット操作の代わりとなります。
VCは、個人の作業ファイルとリポジトリ間のトラフィック管理を支援します。リポジトリが単一のマスターであるか、あるいはピアリポジトリのネットワークの一部であるかは、VCが意識する必要はありません。