CVS (バージョン管理システム)

出典: Wikipedio


Template:Infobox Software Concurrent Versions System(コンカレント・バージョンズ・システム、並行バージョンシステム)は、通常CVS(シーブイエス)と略される、テキストファイルの変更を記録し管理するバージョン管理システム

目次

概要

主にソフトウェアの開発に伴うソースコードを始めとしたテキストファイルの共有(保存、取り出し)に使われる。テキストファイルの枝分かれした版を管理する事ができる。フリーソフトウェアでもある。

枝分かれ(並行ヴァージョン)の機能を使わなくても、ファイルの直線的な追加改変を追いかけるのに使うことが出来る。特にダウンロードをする場合、サーバ上のファイルと自分の持っているファイルの差分のみを転送するだけで最新版を手にいれることが出来るため、開発途中のプログラムの配布にも使われる。

通常、CVSサーバを用意してファイルの共有をする。 CVSサーバにアクセスするCVSクライアント・プログラムは、コマンドラインの cvs を始め、GUI によるラッパーや、統合開発環境向けのプラグインが多数作られている。

CVSは元々、単一のファイルを対象としたバージョン管理ツールである RCSの上に作られていたが、現在は依存はなくなった(リポジトリ内のデータ保持は依然として RCS のそれである)。 $Id:$などのキーワードは、その名残である。 更にRCSは、diffなどのUNIX系のテキスト処理プログラムの上に作られている。

RCSは、マルチユーザーシステム(一台のコンピュータに、複数のダム端末が接続され、CPUファイルシステムが共有されている)の上で、同じファイル/フォルダを共有した状態で使われたのに比べ、CVSではCVSサーバとして別のコンピュータ上に用意することもできる。 同一ファイルを複数人で同時編集した場合のコンフリクトに対するアプローチも異なる。 RCS はファイルをロックする事で同時編集を禁止する。 対する CVS では、RCSのような強固なロックメカニズムは、もたない。すなわち、同時編集を許可する代りにコンフリクトが生じた場合、コミット時にマージ操作が必要とされる。

CVSは、ネットワークでの使用を考慮した最初のソースコード管理システムでかつフリーであったこともあり、1990年代を通じて広く利用された。しかしながら、後述するような欠陥が明らかになるにつれ、近年では、これらの問題を改善した、SubversionPerforcegitなどの新しいツールにとってかわられつつある。

CVSの欠点

  • ファイル名の変更削除、ディレクトリ名の変更削除をうまく扱えない。
  • 異なる文字コード(JIS/SJIS/EUC)に対するサポートがない。
  • 基本的に個々のファイルの履歴はわかるが、リポジトリの履歴は簡単には知ることができない。
  • バイナリーファイルの扱いが下手で、リポジトリサイズの増大につながる。
  • 分散リポジトリをサポートしない。
  • アトミック・コミットをサポートしない。複数のファイルを同時にコミットした場合、CVSではそれぞれのファイルを(ごく短時間の間に)一つずつコミットしたものとして扱うため、アトミック性を満たすことができない。

等の点が挙げられる。

クライアント

関連項目

外部リンク

Template:バージョン管理システムar:نظام النسخ المتلاقية bg:CVS ca:CVS cs:CVS da:Concurrent Versions System de:Concurrent Versions System en:Concurrent Versions System eo:CVS es:CVS et:Concurrent Versions System eu:CVS fr:Concurrent versions system it:Concurrent Versions System ko:CVS nl:Concurrent Versions System no:Concurrent Versions System pl:Concurrent Versions System pt:CVS ru:CVS sk:Concurrent Versions System sv:Concurrent versions system uk:Concurrent Versions System vi:CVS zh:協作版本系統

個人用ツール