Concurrent Versions System
概要
主にソフトウェアの開発におけるソースコードを始めとしたテキストファイルの共有（保存、取出し）に使われる。テキストファイルの枝分かれした版を管理することができる。
枝分かれ（並行ヴァージョン）の機能を使わなくても、ファイルの直線的な追加改変を追いかけるのに使うことができる。特にダウンロードをする場合、サーバ上のファイルと自分の持っているファイルの差分を転送するだけで最新版を手にいれることができるので、開発途中のプログラムの配布にも使われる。
通常、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のような強固なロックメカニズムは、もたない。すなわち、同時編集を許可する代りにコンフリクトが生じた場合、コミット時にマージ操作が必要とされる。