CVS for Dummy (猿でも出来る(?) CVS)


詳しい説明は、
http://kahori.com/j-cvsbook/j-cvsbook.html
にあるのでそっちの方がいいかも。

新たにプロジェクトを登録する

CVS の用語の「プロジェクト」というのは、ディレクトリと同じです。
例えば今作業をしているディレクトリのファイルを

    aaa/bbb/ccc
という名前のプロジェクトで登録すると、
    $CVSROOT/aaa/bbb/ccc
という形でレポジトリが作られます。
$CVSROOT は CVSのレポジトリがあるディレクトリを示す環境変数です。

今、作業してるディレクトリに

    hogehoge.cc
    hogehoge.h
    herohero.cc
    herohero.h
というファイルがあったとして、これらを $CVSROOT の下の aaa/bbb/ccc というディレクトリの下に新たに登録しようとすると、
    cvs import aaa/bbb/ccc  kaneta start
kaneta はベーンダータグ(省略不可)、 start はリリースタグ(省略不可)として CVS に登録されます。 省略不可にも関わらず、この二つのタグは普通は使わないものらしいので、適当でいいらしいです。

レポジトリからファイルをチェックアウトする

最初のチェックアウト

CVSの機能を使うためには、まずレポジトリに格納しているものを自分の場所にチェックアウトしなければなりません。 今いるディレクトリに、レポジトリにあるものをチェックアウトするには、

    cvs checkout [プロジェクト名]
という文法になっています。 上で述べたように、プロジェクト名は、$CVSROOTの下のディレクトリ構造と同じです。

今、~/bokeboke/ というディレクトリにいるとして、この場所に

    $CVSROOT/aaa/bbb/ccc
と納められているものを、チェックアウトするには、
    cvs checkout aaa/bbb/ccc

というコマンドになります。 そうすると、
    ~/bokeboke/aaa/bbb/ccc
という用に、ディレクトリ構造がチェックアウトされてきて、aaa/bbb/ccc の下にあったファイルもチェックアウトされます。

チェックアウトされたディレクトリには CVS というディレクトリが存在します。 このディレクトリには、いつ誰がどのバージョンのファイルをCVSレポジトリからチェックアウトされたか、情報が書いてあるので消しちゃだめです。

その後の作業

チェックアウトされて出来たディレクトリには、CVSというディレクトリが存在して CVSの情報が納められています。 つまり、それぞれのディレクトリが CVSのレポジトリのどれに対応しているか知っているということです。 したがって、そのディレクトリで作業していて、ファイルをレポジトリに登録しようとしたり、比較をしたり、いろいろしようとした場合には、もはやプロジェクト名(レポジトリの中のディレクトリ構造)を指定する必要がありません。

ディレクトリをレポジトリに追加する

今居る場所の下に aaaa というディレクトリを作った場合

    cvs add aaaa
    cvs update

ファイルをレポジトリに追加する

今居る場所で nantara.cc というファイルを作った場合

    cvs add nantara.cc
    cvs commit -m "addition a file as a test" nantara.cc