DG1.2. CVS ツリー構造

作者: Marc G. Fournier () 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
   
を行うと、そのブランチのみにパッチが適用されます。