著者: 1998-11-05 Marc G. Fournier (<scrappy@hub.org>) により書かれました。
cvs checkout コマンドには -r というフラグがあり、特定の改訂版モジュールのチェックアウトを可能にします。例えば将来いかなる場合において、モジュール「tc」のリリース 6_4 を構成しているソースを抽出する時にこのフラグは作業を簡単にします。
$ 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
このようにすればタグと 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
すると内部ではパッチがそのブランそのブランチに適用され、またそのブランチのみの適用となります。