バージョン管理におけるリポジトリはバージョン管理対象の集合(データベース)である。コンテンツの全履歴・メタデータ履歴などで構成される。ファイルの編集がリポジトリへコミットされるとリポジトリ内に新たな履歴が記録される。チェックアウト.ファイルはシステム固有の形式でリポジトリ内に格納されている。リポジトリから特定バージョンの生ファイルを取り出すことをチェックアウトと呼ぶ。チェックイン.ロック方式とコピー・マージ方式.ひとつのファイルへ異なる変更が同時に行われる(並行処理)と一貫性が保てない。この問題を防ぎ並行開発を可能にするために「ロック」あるいは「コピー・マージ」が用いられる。バージョン管理システムはこれらの技法を用い並行開発を可能にする。ロック方式では、ユーザーは編集するファイルにロックをかけ、他のユーザーが編集できないようにし、編集が完了したらロックを解除する。単純で確実な仕組みではあるが、他のユーザーはファイルの編集完了まで待たされ、効率が悪い。また、ユーザーがファイルにロックをかけたまま誤って放置する恐れもある。ロック方式の考え方は「競合を起こしうる変更は事前に許可しない」である。コピー・マージ方式では、編集するファイルをシステムからユーザーの元にコピーし、このコピーを編集する。編集完了後に変更した部分をシステム側に反映させるが、この作業をマージと呼ぶ。他のユーザーの編集中でもシステムからのコピーは自由に行えるようにすることで、複数のユーザーが同時に編集作業を進められるため、グループでの利用に向いている。ただし、それぞれのユーザーによる変更が競合する場合には、マージする時点で解決する必要がある。一般的には、変更内容が競合する旨をユーザーに知らせ、内容を確認、修正させる方法がとられることが多い。コピー・マージ方式の考え方は「実際に競合したらその時に解決する」である。プレーンテキスト形式のファイルは差分管理がしやすいため、マージや競合状態の解消をすることは比較的容易だが、バイナリ形式のファイルは一般的にマージや競合状態の解消が難しい。そのため、既定ではコピー・マージ方式であっても、特定のファイルは常にロック方式とすることのできる機能を持っているバージョン管理システムもある。バージョン番号、タグ、ブランチ.