[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cvs-ml 194] RE: cvs removeしたファイルへのタグ付け
From: Yoshiki Hayashi <t90553@m.ecc.u-tokyo.ac.jp>
Subject: [cvs-ml 193] Re: cvs removeしたファイルへのタグ付け
Date: Fri, 3 Sep 1999 12:04:28 +0900
| http://duff.kuicr.kyoto-u.ac.jp/%7Eokuji/gnujdoc.html
| にある CVS 1.10.7 の日本語 manual の
| Node Tagging add/remove に書いてあります。
ここに書いてあるのは、
cvs remove & cvs commitされた(つまりdead状態の)リビジョンに
タグを付けるにはどうするか、というということだと思います。
今回の質問の場合にも適応できますが..
| cvs tag のかわりに、cvs rtag -r HEAD を使うということです。
trunkで作業している場合には-r HEADでよいですが
branchで作業している場合には-r <branch>ですね。
(注意) trunkやbranchを指定してタグを付ける場合に
cvs tagではなくてcvs rtagを使うと
自分の望んだリビジョンにタグが付く保証がない。
user1 user2
% cvs checkout <module> % cvs checkout <module>
% cd <module> % cd <module>
% vi <file1> % vi <file2>
% cvs commit -m "..." <file2>
% cvs rtag -r HEAD <module>
上の例でいえば、
user1は自分の作業ディレクトリのリビジョンにタグを付けるつもりが、
user2がコミットした新しいリビジョンにタグが付いてしまいます。
これはcvs rtagは作業ディレクトリを参照せずに
レポジトリだけを参照するためです。
一方、cvs tag (-r optionなし)は
作業ディレクトリ(./CVS/Entries)を参照して
タグ付けするリビジョンを決定するため
こういう問題は発生しません。
問題を避けるにはuser1は次の手順が必要でしょう。
1: cvs checkout <module>
2: cd <module>
3: vi <files>
4: cvs admin -l #(再帰的に)リビジョン単位にロックする。
5: cvs -nq up
もしレポジトリが修正されていたらcvs admin -uして、3にもどる
6: cvs rtag -rHEAD <tag> <module>
7: cvs admin -u #ロック解除
--
KOIE Hidetaka 鯉江英隆 <hide@koie.org>