CVS(Concurrent Versions System) は多くのファイルから構成されるモジュールを複数の人間で管理するのに適したツールです。
バージョン管理システム概念
初めての方には聞きなれない言葉が多いので、簡単にまとめます。
リポジトリを使いはじめる最初だけ実行する内容です。
まず、環境変数 CVSROOT と CVSEDITOR を設定しておいてください。
csh
% setenv CVSROOT リポジトリとするディレクトリ % setenv CVSEDITOR エディタのフルパス
bash
% export CVSROOT=リポジトリとするディレクトリ % export CVSEDITOR=エディタのフルパス
例)bashの場合
$ mkdir cvsroot $ export CVSROOT=/home/hoge/cvsroot $ export CVSEDITOR=vi
上記の例では、「/home/hoge/cvsroot」の下にCVSのレポジトリを作成しています。
※なお、Cygwinを利用する人は、[Devel]に含まれている「cvs」を追加しておいて下さい。
インストール画面
はじめにリポジトリを初期化します。これはそのリポジトリを使いはじめる最初だけ実行すればよいです。
% cvs init
まず、登録したいモジュール(ディレクトリとファイル一式)を、リポジトリにインポートします。
% cvs import ディレクトリ名 ベンダーID リリースID
「ベンダーID」はリビジョン 1.1.1 のタグ名となります。通常は自分の名前を指定すれば良いでしょう(省略不可、でも普通は使わない) 。
「リリースID」はリビジョン 1.1.1.1 のタグ名です。何でも構いません(省略不可、でも普通は使わない) 。
例えば「work」ディレクトリ内一式をリポジトリにインポートするには次のように行います。
hoge@computername ~/sample/work $ ls README test1.c test1.h $ cvs import work hoge myproject_0_1
するとCVSEDITORでセットしたエディタが開くので、コメントを追加して保存して閉じます。
MyProject 1.1.1 CVS: ---------------------------------------------------------------------- CVS: Enter Log. Lines beginning with `CVS:' are removed automatically CVS: CVS: ----------------------------------------------------------------------
登録が完了したら「work」ディレクトリ内一式は削除しても構いません。
CSVを利用する場合、基本的な作業は次のようになります。
通常、ファイルのコピーは次のように行います。
cp ~hoge/どこどこ/* .
CVSで管理されたプロジェクトを取り出すには、次のようなコマンドを入力します。
cvs checkout (プロジェクト名)
cvs checkout -d (作業用ディレクトリ) (プロジェクト名)
例)上の例では、プロジェクト名がworkなので、次のように入力します。
$ cvs co work
また、「タグ名」を指定して取り出すには次のように行います。
$ cvs co -r [タグ名] [ファイル名]
co は checkout の省略です。どちらでも構いません。
% cvs ci (-r リビジョン番号:省略可)
ci は commit の略です。
プロジェクトを登録する前に、 ファイルの先頭にコメントを追加しておけば、自動的にコメントが追加されます。
/* * $Log:$ */
$Log: $ という記号の部分に自動的にファイル名・バージョン番号・ 更新日時およびエディタで入力したコメントが追加されます。
$Revision:$ ... リビジョン $Date:$ ... 最終コミットの日付 $Id:$ ... ファイル名、リビジョン、日付、作者
ci した後に、タグをつける
$ cvs tag [タグ名]
% cvs add [新しいファイル名]
バイナリファイルを add する場合は、-kb オプションを指定します。
$cvs add -kb [新しいファイル名]
$ cvs remove [削除したいファイル名] delete
$ cvs status
$ cvs log
$ cvs update
CVS情報を含まないソースツリーを取り出す(チェックアウトではない)
% cvs export -r [リビジョン番号] [プロジェクト名]
$ cvs tag -d [タグ名]
CVSを用いてプロジェクト管理をしていると、「新な機能を追加したいけど完成するまでメインのリポジトリに反映したくない」と思うことがあります。
こういった問題に対する一つの解決策として、CVSの機能であるブランチを用いることができます。
ここでは紹介しません。