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 | パッチ用の差分作成 |
release | checkout のキャンセル |
export | 単なるリポジトリからのファイル抽出 |
history | リポジトリへの変更履歴 |
admin | リポジトリの管理 |
status | 状態を表示 |
log | ログ表示 |
tag | 標識タグ追加 |
rtag | 特別な版に標識タグ追加 |