著者: 1998-11-05 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
すると内部ではパッチがそのブランチに適用され、 またそのブランチのみの適用となります。