バージョン管理 【version control】 バージョンコントロール / バージョニング / versioning
概要
バージョン管理(version control)とは、データを作成・更新などする際に変更履歴を保存し、後からそのデータの任意の時点の版を参照できるようにする仕組み。コンピュータプログラムの開発・修正を円滑に進めるためによく利用される手法で、文書管理など他の分野でも利用されている。既存のデータを修正・更新する際に元のデータを直接上書きしてしまうと、後で誤りに気づいても以前の状態に戻すことができない。データ更新の際に誰が、いつ、どのように変更したのかを履歴として蓄積していれば、後から過去の任意の時点の状態に戻して修正し直すことができる。
また、ある版と別の時点の版を比較してどこがどのように変更されたのかを調べたり、複数人で共同作業する際に他の人の更新内容を上書きして消してしまうのを防いだりすることもできる。ある時点の版を元に本筋とは異なる変更、追加を行い、派生的な成果物を作ることも容易となる。
バージョン管理システム
バージョン管理を行うための専用のソフトウェアを「バージョン管理システム」(VCS:Version Contorol System)という。現代では単にバージョン管理という場合はデータをそのようなシステムに保存して管理することを意味することが多い。
ファイルシステムと同じように複数のファイルを階層的なディレクトリに整理でき、全体をまとめてプロジェクトとして管理することもできる。ファイルとその変更履歴やバージョン番号(リビジョン)などの管理情報は「リポジトリ」(repository)と呼ばれる一種のデータベースにまとめて集積される。
利用者はクライアントソフトを用いてリポジトリにアクセスし、あるファイルの最新版や過去の版を指定して取り出したり、編集した新しい版を登録することができる。変更履歴の流れをある時点を起点に分岐(フォーク)させて派生版を作成したり、再び元の流れに統合(マージ)することもできる。分岐した時系列を「ブランチ」(branch)という。
ネットワーク上に設置したサーバ上でリポジトリを運用すれば、離れた場所にいるメンバー同士が内容の整合性を保ちながら共同で編集作業を進めることができる。現代の大規模なソフトウェア開発には欠かせない仕組みとなっている。