CVSを用いた開発

CVSとは

CVSでの管理

CVSの利用法

CVSを用いた開発では、以下のように行ないます。

※ CVSを利用するには、サーバーにも、ローカルなホストにも CVSがインストールされている必要があります。

環境設定

1 環境変数 CVSROOTの設定

開発しているソースを管理しているCVSサーバーが管理しているファイル の置き場所をCVSROOTに設定します。

(1) サーバーにrshやsshで入れる場合

CVSサーバーにrshやsshでログインできる環境の場合には、 例えば、 cluster01というホストに nakamaというアカウントで rsh で入ることが可能であり、 CVSのルートディレクトリが /home/cvsroot の場合には、 CVSROOTという環境変数の値を、 :ext:nakama@cluster01:/home/cvsroot という値にします。 また、CVS_RSH にリモートで利用するコマンド rsh/ssh を設定します。

 (a) csh 及び tcsh を使っている人は ~/.cshrc に以下の行を追加します。

     setenv CVSROOT  :ext:nakama@cluster01:/home/cvsroot
     setenv CVS_RSH rsh

 (b) bash を使っている人は、~/.bashrc に以下の行を追加します。

     export CVSROOT=:ext:nakama@cluster01:/home/cvsroot
     export CVS_RSH=rsh

(2) サーバーにアカウントを持っていない場合

CVSサーバーにアカウントが無い場合には、 CVSサーバーで、pserverが利用可能である必要があります。 pserverがguestというアカウントで利用できて、 CVSのルートディレクトリ(これをレポジトリと呼びます) がdolphinというホストの /home/cvsroot にある場合には、 CVSROOTという環境変数の値を、:pserver:guest@dolphin:/home/cvsroot という値にします。

 (a) csh 及び tcsh を使っている人は ~/.cshrc に以下の行を追加します。

     setenv CVSROOT  :pserver:guest@dolphin:/home/cvsroot

 (b) bash を使っている人は、~/.bashrc に以下の行を追加します。

     export CVSROOT=:pserver:guest@dolphin:/home/cvsroot

2 cvsコマンドへのパスの設定

cvsがインストールされている環境では、通常はパスが通っていると思いますが、 そうでない場合には cvs というコマンドにパスを通す必要があります。 例えば、/usr/local/cvs/bin の下に cvsコマンドがある場合には、 以下のように設定します。

 (a) csh 及び tcsh を使っている人は ~/.cshrc に以下の行を追加します。

     set path = ( $path /usr/local/cvs/bin )

 (b) bash を使っている人は、~/.bashrc に以下の行を追加します。

     PATH=${PATH}:/usr/local/cvs/bin

まずはソース群を取って来る

ソースを登録する方法は後で説明します。 ここでは最初にソースを持ってくる手順を説明します。 例えば、CVSに登録されれいる sigma というディレクトリ 以下のソースを持ってきたい場合には、 ソースを置きたいディレクトリ上で、以下のコマンドを入力します。

        # cvs checkout sigma

これでカレントディレクトリの下に sigma というディレクトリが作成され、 その下にソース群がコピーされます。 今後は、このディレクトリ以下で作業をする事になります。 これを作業用ディレクトリと呼びます。 ここで、持ってきたソース群の実体は、 環境変数CVSROOTで指定したディレクトリ直下の sigma というディレクトリ以下に格納されています。 (つまりcluster01:/home/cvsroot/sigmaなど) この sigma をレポジトリ名と呼んでいます。

CVS開発での1日の作業

1日の作業は、update → ソースの編集 → commit → update の繰り返しです。

1 update

多人数で開発している場合には、 いつ誰がソースを修正しても良い事が前提ですので、 まずは自分の作業用ディレクトリのソースを最新にしておきます。 これには、update コマンドを使います。 dfemディレクトリ(作業用ディレクトリにcdして)に移って、 以下のコマンドを入力します。

        # cvs update
これで、ディレクトリ以下のすべてのソースが最新と同じものになります。 update したファイルがあればそれを教えてくれます。 何かをする前には、つねに update をする癖をつけましょう。

2 ソース編集

update後の最新のソースを修正します。 ここで修正しただけではCVSのサーバーには反映されません。

3 commit

修正したソースをサーバーに反映するには以下のようにします。

        # cvs commit -m 'some-comment'

これで、修正したソースがCVSサーバーに反映されます。 ここで、'some-comment' の部分には適当なコメントを入れます。 何の修正をしたのかを入れておいて下さい。これは必ず必要です。 -m オプションを忘れた場合には、エディタが立上りますので、 そこで適当に入力して下さい。

ファイルを追加したい場合

sigma以下にファイルを追加したい場合、 例えばsigma/fooというファイルを新たに作成して登録したい場合には、 cvs add コマンドを使います。すでに sigma/foo というファイルがあるとして、

        # cd sigma
        # cvs add foo

しかし、これだけでは実際にレポジトリ内には登録されず、 登録するには commit を行います。

        # cd sigma
        # cvs commit -m 'add foo'

ファイルを削除したい場合

いらなくなったファイルを削除したい場合には、 実際にファイルを削除して cvs remove コマンドを実行します。 例えば、simga/bar というファイルを削除する場合には以下のように行います。

        # cd sigma
        # rm bar
        # cvs remove bar

ソース群の登録の仕方

CVSに最初にソース(テキストファイル)群を登録する方法を説明します。 カレントディレクトリの下に sigma というディレクトリがあり、 それ以下に幾つかのテキストファイルが置かれているとします。 例えば以下のようなコマンドで登録します。

        # cd sigma
        # cvs import -m 'Imported version 1.0' sigma mizuho-ir start

ここで指定した、sigma という名前のディレクトリがレポジトリ直下に作成され sigma 以下のファイルが登録されます。 ここで、-m はコメントを登録するオプションで、 'Imported version 1.0'がコメントです。 sigma はレポジトリ名、mizuho-ir はベンダータグ、startはリリースタグです。

開発を抜ける場合

一度 checkout すると、CVSの方で管理されているので、開発を抜ける場合や、 デリートしたい場合、場所を移動したい場合には、release します。 dfem などのディレクトリの上で以下のようにします。

        # cvs release -d dfem

これで dfem のディレクトリも削除されます。再度開発に加わる時には、 checkout からやり直します。