「Concurrent Versions System」の版間の差分

削除された内容 追加された内容
CharHigh (会話 | 投稿記録)
Anonj99 (会話 | 投稿記録)
英語版を参考に「その他のツール」を追加、テンプレート記述の修正、リンクの追加・修正、空白の有無や括弧の統一など
5行目:
| caption =
| developer = [http://savannah.nongnu.org/project/memberlist.php?detailed=1&group=cvs The CVS Team]
| released = {{Start date and age|1990|11|19}}
| latest release version = 1.11.23
| latest release date = {{Start date and age|2008年5月8日|05|08}}
| latest preview version = 1.12.13
| latest preview date = {{Start date and age|2006年7月|07|26}}
| operating system = UNIX[[Unix]][[Microsoft Windows|Windows]]
| platform =
| programming language = [[C言語|C]]
| genre = [[バージョン管理システム]]
| license = [[GNU General Public License|GPL]]
| website = {{URL|http://www.nongnu.org/cvs}}
}}
'''Concurrent Versions System'''(コンカレント・バージョンズ・システム、並行バージョンシステム)は、通常'''CVS'''(シーブイエス)と略される、[[テキストファイル]]の変更を記録し管理する[[バージョン管理システム]]。[[フリーソフトウェア]]である。
 
== 概要 ==
主に[[ソフトウェア]]の開発に伴う[[ソースコード]]を始めとしたテキストファイルの共有(保存、取り出し)に使われる。テキストファイルの枝分かれした版を管理することができる。
 
枝分かれ(並行ヴァージョン)の機能を使わなくても、ファイルの直線的な追加改変を追いかけるのに使うことが出来る。特にダウンロードをする場合、サーバ上のファイルと自分の持っているファイルの差分のみを転送するだけで最新版を手にいれることが出来るため、開発途中のプログラムの配布にも使われる。
 
通常、[[CVSサーバ]]を用意してファイルの共有をする。CVSサーバにアクセスする[[CVSクライアント]]・プログラムは、コマンドラインの <code>cvs </code>を始め、[[GUI ]]によるラッパーや、[[統合開発環境]]向けのプラグインが多数作られている。
 
CVSは、ネットワークでの使用を考慮した最初のソースコード管理システムでかつフリーであったこともあり、1990年代を通じて広く利用された。しかしながら、後述するような欠陥が明らかになるにつれ、これらの問題を改善した、[[Subversion]]・[[Perforce]]・[[git]]などの新しいツールにってわられた。
 
== RCSとの比較 ==
CVSは元々、単一のファイルを対象としたバージョン管理ツールである[[Revision Control System|RCS]]の上に作られていたが、現在は依存はなくなった(リポジトリ内のデータ保持は依然として RCS のそれである)。$Id:$などのキーワードは、その名残である。更にRCSは、diffなどのUNIX系のテキスト処理プログラムの上に作られている。
 
RCSは、マルチユーザーシステム(1(1台のコンピュータに、複数のダム端末が接続され、[[CPU]]や[[ファイルシステム]]が共有されている)の上で、同じファイル/フォルダを共有した状態で使われたのに比べ、CVSではCVSサーバとして別のコンピュータ上に用意することもできる。
 
同一ファイルを複数人で同時編集した場合のコンフリクトに対するアプローチも異なる。RCS はファイルをロックする事で同時編集を禁止する。対する CVS では、RCSのような強固なロックメカニズムは、もたない。すなわち、同時編集を許可する代りにコンフリクトが生じた場合、コミット時にマージ操作が必要とされる。
 
== 欠点 ==
* ファイル名の変更削除、ディレクトリ名の変更削除をうまく扱えない。
* 異なる文字コード(JIS(JIS/SJIS/EUC)EUC)に対するサポートがない。
* 基本的に個々のファイルの履歴はわかるが、リポジトリの履歴は簡単には知ることができない。
* バイナリーファイルの扱いが下手で、リポジトリサイズの増大につながる。
* 分散リポジトリをサポートしない。
* アトミック・コミットをサポートしない。複数のファイルを同時にコミットした場合、CVSではそれぞれのファイルを(ごく短時間の間に)一つずつコミットしたものとして扱うため、[[不可分操作|アトミック性]]を満たすことができない。
等の点が挙げられる。
 
== クライアント ==
* [[Microsoft Windows|Windows]] - [http://wwwcvsgui.wincvssourceforge.orgnet/ WinCvs], [http://www.tortoisecvs.org/ [TortoiseCVS]](エクスプローラ拡張)
* [[OS X|Mac OS X]], [[MacOS OSX]] - [http://wwwcvsgui.wincvssourceforge.orgnet/ MacCvs]
* [[GNOME]] - [http://wwwcvsgui.wincvssourceforge.orgnet/ gCvs]
* [[Eclipse (統合開発環境)|Eclipse]] - クライアント機能が内蔵されている。
* [[KDE]] - GUI[[フロントエンド]]として[[Cervisia]]が公開されている。
 
== その他のツール ==
* [http://www.viewvc.org/ ViewVC(ViewCVS)] - CVSおよびSubversionリポジトリをブラウザ上で閲覧するためのツール。[[SourceForge.net]]によって採用される。
* [http://www.mozilla-japan.org/projects/bonsai/ Bonsai] - [[Mozilla]]によって開発されたCVSリポジトリをブラウザ上で管理するためのツール。
* [http://opengrok.github.io/OpenGrok/ OpenGrok] - ソースコードをブラウザ上で検索・参照するためのツール。CVSやSubversion, Git, Mercurial, Bazaarなど多数のバージョン管理システムをサポート。Javaで書かれている。
* [http://statcvs.sourceforge.net/ StatCVS] - CVSリポジトリから情報を取得して、表やグラフを用いたグラフィカルなレポートを作成するJavaで書かれたツール。
 
== 関連項目 ==
{{ウィキポータルリンク|FLOSS|[[ファイル:FLOSS_logo.png|36px]]}}
 
* [[バージョン管理システム]]
* [[Git]]
* [[Subversion]](SVN)(SVN)
* [[Cervisia]]
* [[patch]]
* [[UNIX]]、[[Linux]]
 
== 外部リンク ==
* [http://www.nongnu.org/cvs 公式ウェブサイト]
* [http://ximbiot.com/cvs/wiki/index.php?title=Main_Page Main Page - Ximbiot - CVS Wiki]
* [http://www.sodan.org/~penny/vc/ CVS manual の日本語訳]
* [http://jtdan.com/vcs/kahori.com/j-cvsbook/ The CVS Book 日本語訳]
* [http://vox.nishimotz.com/cvs/cvs.html バージョン管理システム CVS を使う]
* [http://oku.edu.mie-u.ac.jp/~okumura/networking/cvs.html バージョン管理システム CVS]