CVSコマンドrlogでブランチにつけたタグで実行したいがうまくいかな
CVSコマンドrlogでブランチにつけたタグで実行したいがうまくいかない
CVSコマンドのrlogを実行したいのですが、うまくいきません。
「cvs rlog: invalid branch or revision pair…」というメッセージが出ます。
※「コマンド」と表現していますが、シェルの中で「FROM_TAG」「TO_TAG」
を指定し、連続的に指定ファイルのrlogを機械的に取得するという
処理を行ないたいと思っています。
コマンドは以下のような単純なコマンドです。
-------------------------------
PERIOD=${FROM_TAG}::${TO_TAG}
cvs -d ${CVSROOT} rlog -N -r${PERIOD} ${ファイル名}
-------------------------------
指定しているタグはブランチに付与した「つもり」のタグです。
そこで、タグを確認してみたところ
TO_TAGは確かにブランチに付与されていました。一方で
FROM_TAGはtrunkに付与されていました。
「それが原因だろ」といわれるとそのとおりなのですが、
タグは確かにブランチを指定しタグを付与しました。
FROM_TAGをつけたのはブランチを作成した直後です。
つまり、trunkとまったく同じファイル。
なので、リビジョンはtrunk用の「1.n」のままです。
この時点で、ブランチの最新にタグをつけたのですが、
するとタグは「1.n」系のリビジョンにつきました。
ファイル自体はまったく変更していないので当然といえば当然です。
それではと、とりあえず以下のコマンドにしたところ一応うまくいきました。
-------------------------------
PERIOD=::${TO_TAG}
cvs -d ${CVSROOT} rlog -N -r${PERIOD} ${ファイル名}
-------------------------------
ただ、これが通用するのはブランチを作成してから
何も修正していない状態のファイルにだけです。
つまり、ブランチを作成してから、タグA, B, Cを打っており
BとCを指定してrlogを取得するときに、
AとBの間、BとCの間で修正があったソースは成功するけれども
BとCの間だけで修正があったソースは失敗してしまうことになると思います。
この現象を回避するコマンドの書き方はありますでしょうか?
タグのつけ方が何か悪いのでしょうか?
タグを適切につけたらこのようなことはおこらないのでしょうか?
(SVNならこんな苦労はしないはずなのに…とも思っています)
対応方法・アドバイス等よろしくお願いします。
(SVNを使ってとかはナシで)
お礼
できました! ありがとうございます。