DG1.2. CVS ツリー構造

作者: Written by Marc G. Fournier () on 1998-11-05

cvs checkout コマンドには-rと フラグがあり、特定バージョンのモジュールの改訂版をチェックアウトが可能となります。 これは大変便利なもので、例えばリリースバージョン6_4のモジュール`tc'を 将来入手したい場合は

$ cvs checkout -r REL6_4 tc
   
とすれば指定したものを入手することができます。 例えば誰かがそのバージョンでのバグレポートを行い、しかし 今現在あなたが使用しているバージョンでは発生しない場合などに 大変便利です。

Tip: また、-Dオプションを使用して特定の日にちのモジュール をチェックアウトすることができます。

1つ以上のファイルに対して同じタグを使用する場合、そのタグは "ファイル名と改訂番号のマトリックスで作られたカーブ"と考えることができます。 例えば、5つのファイルそれぞれ下記の改訂版であるとします。

             file1   file2   file3   file4   file5
     
             1.1     1.1     1.1     1.1  /--1.1*      <-*-  TAG
             1.2*-   1.2     1.2    -1.2*-
             1.3  \- 1.3*-   1.3   / 1.3
             1.4          \  1.4  /  1.4
                           \-1.5*-   1.5
                             1.6
   
この例では、"TAG" タグはfile1-1.2,file2-1.3などを参照します。

Note: リリースブランチを作成する際も、コマンドに-bオプションが付けられていない 場合以外は同じ方法で作成できます。

そこで、6.4 リリースを作成したとき、私は以下のようにしました。

$ cd pgsql
$ cvs tag -b REL6_4
   
このようにすればタグとリリースツリーのためのブランチが作成されます。

CVS を使えば、違うバージョンごとに ディレクトリを作成することが可能です。まず新しいものと古いものが 混ざらないように、RELEASEとCURRENTという2つのサブディレクトリを作成します。

cd RELEASE
cvs checkout -P -r REL6_4 pgsql
cd ../CURRENT
cvs checkout -P pgsql
   
上記のコマンドを実行するとRELEASE/pgsqlCURRENT/pgsqlが作成されます。これ以降、CVS がどのリポジトリブランチがどこのディレクトリツリーにあるかを管理し、 各々独自の更新が可能となります。

もしCURRENT だけ で作業を行っているのならば、 作業方法はリリースブランチにタグを付ける前となんら変わりありません。

ブランチの最初のチェックアウトを行うために下記のコマンドを実行したら、

$ cvs checkout -r REL6_4
   
このディレクトリ構造内で行ったことすべてはそのブランチ内でのみ有効となります。 もしそのディレクトリ構造内でパッチをあて、それから
cvs commit
   
を行うと、そのブランチのみにパッチが適用されます。