CVS(Concurrent Versions System) 概要

CVSとは

CVSとは、1990年にリリースされた集中管理方式のバージョン管理ソフトウェアです。
2000年代前半まで多くのプロジェクトにおいて使用されていましたが、Subversion(SVN) などの後継のバージョン管理ソフトウェアが主流になったため、2008年5月にリリースされたバージョン 1.11.23を最後に開発が終了しています。
CVSは運用上の問題などもあり、近年では改良版であるSVNやGit等他のバージョン管理システムの台頭の影響で需要が少なくなっています。

CVSの問題点

  • ファイル単位でバージョンを行うため、プロジェクト全体のバージョンがわかりづらい
  • ファイル名・ディレクトリ名の変更がうまくできない
  • 異なる文字コード(JIS/SJIS/EUC)に対するサポートがない。
  • 通信の暗号化をサポートしていない

CVSの操作

CVSクライアント側の操作

チェックアウト

CVSリポジトリに登録されたファイル群を、指定されたディレクトリに展開します。


$ cvs checkout 〔-d 作業用ディレクトリ名〕 プロジェクト名

アップデート

最新のCVSリポジトリに登録されているデータファイルと、現在の作業用ディレクトリにあるデータファイルを比較します。 リポジトリの方が新しければ、現在の作業用ディレクトリにあるファイルをリポジトリ内容に更新します。


$ cvs update

Diff

リポジトリ中の最新と、作業ディレクトリの内容の差分を確認します。


$ cvs diff -u

add/remove

作業中に特定のファイルを破棄したくなったり、新規ファイルを追加したくなった場合は、remove や add コマンドを使います。
remove は既にファイルを削除した状態でないと使えません。
また、操作をCVSリポジトリに対してファイル操作を反映するにはcommitする必要があります。

commit

変更をCVSリポジトリに反映する。コミットする前には、必ずupdateを実行しておく必要があります。


$ cvs commit

CVSサーバ側の操作

cvs コマンドには次のようなものがあります。

cvs コマンド動作
initリポジトリ作成
import新規プロジェクトの作成
update作業ディレクトリを最新状態に
commitリポジトリへの修正反映
addリポジトリへのファイルの追加予約
removeリポジトリからのファイルの削除予約
diffリポジトリと作業ディレクトリの差分表示
rdiffパッチ用の差分作成
releasecheckout のキャンセル
export単なるリポジトリからのファイル抽出
historyリポジトリへの変更履歴
adminリポジトリの管理
status状態を表示
logログ表示
tag標識タグ追加
rtag特別な版に標識タグ追加

関連ページ