CVS 【Concurrent Versions System】
概要
CVS(Concurrent Versions System)とは、著名なオープンソースのバージョン管理システム(VCS)の一つで、ネットワークを通じて複数人で利用するクライアントサーバ型のVCSとして初めて本格的に普及したもの。バージョン管理システムの基本的な機能として、リポジトリと呼ばれるサーバ上の領域でファイルを集中的に管理し、複数の作業者が並行して内容を更新していくことができるようにする。
個々のファイルにいつ誰がどのような変更を行ったかを記録しており、必要に応じて特定の日時の版を参照したり、その状態に戻したりすることができる。また、プロジェクトの時系列を分岐(ブランチ)して派生プロジェクトを作成したり、それを再び元の系列に融合(マージ)したりすることができる。
CVSクライアントはサーバ上のファイルの内容のうち、自らが持っている版とは異なっている部分(差分)のみを送受信するため、毎回ファイルのすべてを送受信することなく軽快に動作する。あるファイルの同じ版に対する更新が複数の利用者から送られた場合にも、更新箇所が重複していなければそれぞれ受け入れて変更を統合することができる。
一方、(同一ファイルであることを維持したまま)ファイル名やディレクトリ名を変更することができない、ASCII文字以外のファイル名などを正しく扱えない、リポジトリの分散に対応しない、バイナリファイルの差分を抽出できずすべての版を丸ごと保存してしまう(保管容量が増大する)などの難点がよく指摘される。
UNIX系OSなどではcvsというコマンドラインツールが利用できるほか、WindowsやmacOS(Mac OS/Mac OS X)用のクライアントソフトなども用意されている。統合開発環境(IDE)として人気の高いEclipseにはCVSクライアント機能が内蔵されている。
CVSの最初のバージョンは1990年に公開され、本格的なクライアントサーバ型のVCSとして様々なオープンソースソフトウェアなどの開発に用いられた。後にCVSの欠点を改良した「より良いCVS」として開発された「Subversion」(SVN)や、CVSを「悪いお手本」として異なる設計思想で開発された「Git」などが台頭し、取って代わられるようになった。オリジナルのCVSは2008年を最後に更新が止まっている。