F.2. CVS ツリー構造

著者: 1998-11-05 Marc G. Fournier () により 書かれました。

cvs checkout コマンドには -r という フラグがあり、特定の改訂版モジュールのチェックアウトを可能にします。 例えば将来いかなる場合において、モジュール「tc」のリリース 6_4 を構成 しているソースを抽出する時にこのフラグは作業を簡単にします。

$ cvs checkout -r REL6_4 tc
   

例えば、誰かがそのリリースにあるバグを報告してきたけれど、 現在作業しているファイルにそのバグがみつからない時に有効です。

ティップ: また、-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 などを 参照します。

注意: リリースブランチを作成する際も、コマンドに -b オプションを 追加する以外は同じ方法で作成できます。

と言うことで、6.4 リリースはこのようにして作成されました。

$ cd pgsql
$ cvs tag -b REL6_4
   

このようにすればタグと RELEASE ツリーのためのブランチが作成されます。

CVS によるアクセスによって、異なったバージョン ごとのディレクトリを作成することは簡単です。まず新しいものと古いものが 混ざらないように、RELEASE と CURRENT という 2 つのサブディレクトリを作成 します。作成したら、次のコマンドを実行します。

cd RELEASE
cvs checkout -P -r REL6_4 pgsql
cd ../CURRENT
cvs checkout -P pgsql
   

上記のコマンドを実行すると RELEASE/pgsqlCURRENT/pgsql の 2 つのディレクトリツリーが 作成されます。これ以降、CVS がどのリポジトリ ブランチがどこのディレクトリツリーにあるかを管理し、それぞれのツリーに対し 独自の更新が可能となります。

もし CURRENT ソースツリーだけで 作業を行っているのであれば、作業はリリースブランチにタグを付ける前と同じ です。

次のようにして最初のチェックアウトを行います。

$ cvs checkout -r REL6_4
   

このディレクトリ構造内で何を行うとも、更新はそのブランチ内のみに制限されます。 もしそのディレクトリー構造にパッチをあて、そして次のようにしたとします。

cvs commit
   

すると内部ではパッチがそのブランチに適用され、 またそのブランチのみの適用となります。