CVS
正式名称:Concurrent Versions System
ファイルの変更履歴を管理するバージョン管理システムのひとつ。
バージョン管理システムでは、変更前と変更後の差分情報のみを記録するためディスクスペースを節約できる、ネットワーク上にリポジトリを置き、複数の作業者が共同で作業することができる、複数の作業者による作業内容を自動的にマージする機能を持つ、各リビジョンにタグと呼ばれる別名をつけることができる、バイナリファイルを扱うことができるなど、従来のバージョン管理システムに比べて大きな利点を持っている。
CVSでは、ひとまとまりの作業単位をモジュールと呼ぶ。各作業者はモジュール単位でチェックイン、チェックアウトを行う。
関連見出し
バージョン管理システム
リポジトリ
チェックイン
チェックアウト
Subversion
関連URL
CVS - Concurrent Versions System(http://www.nongnu.org/cvs)
CVS
読み方:シーブイエス
CVSとは、テキストファイルのデータ変更を記録・管理するシステムのことである。主として、ソフトウェア開発において複数人数で同じソースコード扱う際、ファイルの内容変更を確認し差分を吸収するために用いられる。
CVSを用いれば、同時に複数の人間が同じファイルを編集しても内容の同一性を保つことができ、内容の食い違い(競合)が生じていた場合には差を吸収して1つに統合することができる。あるいは逆に、あるバージョンのファイルに対して別々の変更を加えて、ファイルのバージョンを分岐させることも可能である。ダウンロード作業だけで自分の手元のファイルを最新バージョンに更新することができ、更新履歴を参照して元のバージョンに復旧することもできる。CVSはシステム管理におけるあらゆる需要に対応できる機能を備えている。
参照リンク
CVS - Concurrent Versions System
Concurrent Versions System
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/11 16:19 UTC 版)
ナビゲーションに移動 検索に移動開発元 | The CVS Team |
---|---|
初版 | 1990年11月19日 |
最新版 | 1.11.23 / 2008年5月8日 |
最新評価版 | 1.12.13 / 2006年7月26日 |
リポジトリ | |
プログラミング 言語 | C |
対応OS | Unix系、Windows |
種別 | バージョン管理システム |
ライセンス | GPL |
公式サイト | www |
Concurrent Versions System(コンカレント・バージョンズ・システム、並行バージョンシステム)は、通常CVS(シーブイエス)と略される、テキストファイルの変更を記録し管理するバージョン管理システム。フリーソフトウェアである。
概要
主にソフトウェアの開発におけるソースコードを始めとしたテキストファイルの共有(保存、取出し)に使われる。テキストファイルの枝分かれした版を管理することができる。
枝分かれ(並行ヴァージョン)の機能を使わなくても、ファイルの直線的な追加改変を追いかけるのに使うことができる。特にダウンロードをする場合、サーバ上のファイルと自分の持っているファイルの差分を転送するだけで最新版を手にいれることができるので、開発途中のプログラムの配布にも使われる。
通常、CVSサーバを用意してファイルの共有をする。CVSサーバにアクセスするCVSクライアント・プログラムは、コマンドラインのcvs
を始め、GUIによるラッパーや、統合開発環境向けのプラグインが多数作られている。
CVSは、ネットワークでの使用を考慮した最初のソースコード管理システムであって、フリーウェアだったので、1990年代を通じて広く利用された。しかし、後述するような欠陥が明らかになるにつれ、これらの問題を改善した、Subversion、Perforce、Git などの新しいツールに取って代わられた。
RCSとの比較
CVSは元々、単一のファイルを対象としたバージョン管理ツールであるRCSの上に作られていたが、現在は依存はなくなった(リポジトリ内のデータ保持は依然として RCSのそれである)。$Id:$などのキーワードは、その名残である。更にRCSは、diffなどのUNIX系のテキスト処理プログラムの上に作られている。
RCSは、マルチユーザーシステム(1台のコンピュータに、複数のダム端末が接続され、CPUやファイルシステムが共有されている)の上で、同じファイル/フォルダを共有した状態で使われたのに比べ、CVSではCVSサーバとして別のコンピュータ上に用意することもできる。
同一ファイルを複数人で同時編集した場合のコンフリクトに対するアプローチも異なる。RCSはファイルをロックする事で同時編集を禁止する。対するCVSでは、RCSのような強固なロックメカニズムは、もたない。すなわち、同時編集を許可する代りにコンフリクトが生じた場合、コミット時にマージ操作が必要とされる。
欠点
- ファイル名の変更削除、ディレクトリ名の変更削除をうまく扱えない。
- 異なる文字コード(JIS/SJIS/EUC)に対するサポートがない。
- 基本的に個々のファイルの履歴はわかるが、リポジトリの履歴は簡単には知ることができない。
- バイナリーファイルの扱いが下手で、リポジトリサイズの増大につながる。
- 分散リポジトリをサポートしない。
- アトミック・コミットをサポートしない。複数のファイルを同時にコミットした場合、CVSではそれぞれのファイルを(ごく短時間の間に)一つずつコミットしたものとして扱うため、アトミック性を満たすことができない。
等の点が挙げられる。
クライアント
- Windows - WinCvs[※ 1], TortoiseCVS(エクスプローラ拡張)
- Classic Mac OS, macOS - MacCvs[※ 1]
- GNOME - gCvs[※ 1]
- Eclipse - クライアント機能が内蔵されている。
- KDE - GUIフロントエンドとしてCervisiaが公開されている。
その他のツール
- ViewVC[※ 2] - CVSおよびSubversionリポジトリをブラウザ上で閲覧するためのツール。SourceForge.netによって採用される。
- Bonsai[※ 3] - Mozillaによって開発されたCVSリポジトリをブラウザ上で管理するためのツール。
- OpenGrok[※ 4] - ソースコードをブラウザ上で検索・参照するためのツール。CVSやSubversion, Git, Mercurial, Bazaarなど多数のバージョン管理システムをサポート。Javaで書かれている。
- StatCVS[※ 5] - CVSリポジトリから情報を取得して、表やグラフを用いたグラフィカルなレポートを作成するJavaで書かれたツール。
注釈
関連項目
外部リンク
- Concurrent_Versions_Systemのページへのリンク