[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>