Next: , Previous: , Up: バージョンコントロールの紹介   [Contents][Index]


29.1.1.3 バージョンコントロールの概念

ファイルがバージョンコントロールの配下にある時、それがバージョンコントロールシステムに登録されている(registered)と言います。バージョンコントロールシステムは、レポジトリ(repository)をもちます。これはファイルの現在の状態、および古いバージョンから現在のバージョンを再構成するのに充分な変更履歴の、両方を保存します。レポジトリには、各ファイルに行われた変更の説明であるログエントリー(log entries)など、その他の情報も含まれます。

実際に編集する、バージョンコントロールされたファイルのコピーのことを、作業ファイル(work file)と呼びます。作業ファイルは、通常のファイルを同じように変更できます。一連の変更を終えた後、その変更をコミット(commit)またはチェックイン(check in)します。これにより、その変更はログエントリーの記述とともに、レポジトリに記録されます。

作業ファイルのディレクトリツリーを、作業ツリー(working tree)と呼びます。

commitするたびに、レポジトリに新しいリビジョン(revision)が作成されます。バージョンコントロールシステムは、過去のすべてのリビジョンと、各リビジョンで行われた変更を記録します。各リビジョンには、リビジョンID(revision ID)により名前がつけられます。リビジョンIDのフォーマットは、バージョンコントロールシステムに依存します。もっとも簡単なケースでは、リビジョンIDは単なる整数です。

これらの基本的な概念を超えるにつれ、各バージョンコントロールシステムの違いの、3つの様相を理解する必要がでてくるでしょう。以降の3つのセクションで説明するように、各バージョンコントロールシステムには、ロックベース(lock-based)とマージベース(merge-based)、ファイルベース(file-based)と変更セットベース(changeset-based)、集中型(centralized)と分散型(decentralized)の違いがあります。VCはこれらすべてのモードの操作を処理しますが、それらの違いを隠蔽することはできません。