著者: 1998年11月5日、Marc G. Fournier(
<scrappy@hub.org>)により 書かれました。
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/pgsqlとCURRENT/pgsqlの2つのディレクトリツリーが作成されます。これ以降、CVSがどのリポジトリブランチがどこのディレクトリツリーにあるかを管理し、それぞれのツリーに対し独自の更新が可能となります。
もし CURRENTソースツリーだけで作業を行っているのであれば、作業はリリースブランチにタグを付ける前と同じです。
次のようにして最初のチェックアウトを行います。
$ cvs checkout -r REL6_4
このディレクトリ構造内で何を行おうとも、更新はそのブランチ内のみに制限されます。もしそのディレクトリ構造にパッチを当て、そして次のようにしたとします。
cvs commit
すると内部ではパッチがそのブランチに適用され、またそのブランチのみの適用となります。