ノード: Creating A Tag Or Branch Without A Working Copy, 前: Multiple Merges, 上: Branches



Creating A Tag Or Branch Without A Working Copy

前にも述べたとおり、タグ付けというのは作業コピーでなくリポジトリに影響を 与えます。では、タグをつけるときに作業コピーはいらないんじゃないか、とい う疑問が出てくると思います。作業コピーは、どのプロジェクトが対象で、各ファ イルがどのリビジョンかというのを指定するために必要なだけです。作業コピー に関係なくプロジェクトとリビジョンを指定できたとしたら、作業コピーは必要 ないのです。

こんな方法があります: rtag コマンドです("repository tag")。これは tag コ マンドととても似たものなので、例を2つだけ示して使いかたの説明にかえます。 最初のバグレポートが来たときに戻りましょう。最後のリリースに根を下ろすブ ランチを作らなければなりません。リリースのタグを指定して作業コピーをチェッ クアウトし、tag -b を実行しました:

     floss$ cvs tag -b Release-1999_05_01-bugfixes
     

こうすると Release-1999_05_01 に根を下ろすブランチが作成されます。 しかし、リリースのタグを知っているなら、それを使ってブランチの根の場所を 指定して rtag コマンドを実行すればいいのです、作業コピーを作る必要はあり ません:

     floss$ cvs rtag -b -r Release-1999_05_01 Release-1999_05_01-bugfixes myproj
     

これだけでおわりです。このコマンドは作業コピーの中でも外でも、どちらで実 行してもしてもかまいません。ただし、CVSROOT 環境変数にリポジトリの場所を 設定しておくか、-d グローバルオプションで指定する必要があります。このコ マンドでブランチでないタグをつけることもできますが、各ファイルのリビジョ ン番号をひとつひとつ指定しなければならないので、あまり便利とは言えません。 (それをタグで参照することも可能ですが、ということはもうタグがついている わけで、同じリビジョンに2つもタグをつけても仕方ないですよね)

さて、CVS でいろいろできるくらいに知識がつき、プロジェクトで他の人と作業 できるくらいにはなったと思います。あまり重要でない機能いくつかと、ここま でに見てきた機能につける便利なオプションいくつかをまだ説明していません。 このあと適切な章のなかで、どのように、どういう時につかえば良いかを実地例 で説明します。よくわからない時には迷わず Cederqvist マニュアルを読んでみ ること、本気で CVS を使う人には不可欠なものですから。