バージョン管理システムには通常、同一ファイルを変更したいユーザー間の調整を行うための仕組みが備わっています。その方法には、マージとロックの2通りがあります。
マージ機能を備えたバージョン管理システムでは、各ユーザーがいつでも作業ファイルを変更できます。このシステムでは、コミットされていない変更が含まれている可能性のある作業ファイルを、他のユーザーがコミットした最新の変更とマージすることができます。
旧来のバージョン管理システムでは、代わりにロック方式が採用されています。この方式では、作業ファイルは通常読み取り専用となります。ファイルを編集するには、バージョン管理システムにロックをかけて書き込み可能にするよう要求します。あるファイルを同時にロックできるユーザーは一人だけです。この手順は、Emacsが通常ファイルの同時編集を検出するために用いるロック方式と類似していますが、それとは異なります(同時編集の防止を参照)。変更をコミットするとファイルのロックが解除され、作業ファイルは再び読み取り専用になります。その後、他のユーザーがファイルをロックして独自の変更を加えることができます。
ロック方式とマージ方式のいずれにおいても、複数のユーザーが同時に同一ファイルを変更しようとすると問題が発生することがあります。ロック方式ではロック競合が発生し、ユーザーがファイルのチェックアウトを試みても、ロックされているためにできない場合があります。マージ方式では、チェックアウト後に他のユーザーがコミットした変更と競合する変更をファイルにコミットした際に、マージ競合が発生します。どちらの種類の競合も、人間による判断とコミュニケーションによって解決する必要があります。経験上、開発者にとっての利便性と、実際に発生する競合の数および深刻度を最小限に抑えられる点の両面において、マージ方式はロック方式よりも優れています。
SCCSは常にロック方式を採用しています。RCSはデフォルトではロック方式ですが、マージ方式で動作するように設定することも可能です。CVSとSubversionはデフォルトではマージ方式ですが、ロックモードで動作するように設定することも可能です。GitやMercurialなどの分散型バージョン管理システムは、専らマージ方式を採用しています。
VCモードは、ロック方式とマージ方式の両方のバージョン管理をサポートしています。「コミット」や「アップデート」という用語は新しいバージョン管理システムで用いられており、従来のロックベースのシステムでは「チェックイン」や「チェックアウト」という用語が使われています。VCは、これら両者の相違点を可能な限り隠蔽しています。