アプリ版:「スタンプのみでお礼する」機能のリリースについて

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を使ってとかはナシで)

A 回答 (1件)

おやー?とおもって手元でやってみましたが普通に取得できましたよ?



symbolic names:
FIRST_TAG: 1.2
FIRST_BRANCH: 1.2.0.2

[user1 ~/cvsdir/TEST]$ cvs rlog -N -rFIRST_TAG:FIRST_BRANCH TEST
cvs rlog: Logging TEST

RCS file: /home/user1/.cvsdb/TEST/test.txt,v
head: 1.3
branch:
locks: strict
access list:
keyword substitution: kv
total revisions: 4; selected revisions: 2
description:
----------------------------
revision 1.2
date: 2010/08/30 11:25:33; author: user1; state: Exp; lines: +1 -0
branches: 1.2.2;
第2版です。
----------------------------
revision 1.2.2.1
date: 2010/08/30 11:31:42; author: user1; state: Exp; lines: +2 -2
第2版の派生です。

[user1 ~/cvsdir/TEST]$ cvs --version

Concurrent Versions System (CVS) 1.11.22.1-20080310-FreeBSD (client/server)

Copyright (C) 2006 Free Software Foundation, Inc.

Senior active maintainers include Larry Jones, Derek R. Price,
and Mark D. Baushke. Please see the AUTHORS and README files from the CVS
distribution kit for a complete list of contributors and copyrights.

CVS may be copied only under the terms of the GNU General Public License,
a copy of which can be found with the CVS distribution kit.

Specify the --help option for further information about CVS
    • good
    • 0
この回答へのお礼

せっかくご回答いただいたのに
お礼が遅れてしまい大変申し訳ありません。

出来ましたか…
私の環境で再度試してみたのですが、やはり同じ結果でした。
CVSクライアントのバージョンも怪しくはありませんでした。

ブランチの切り方や状況に特異な点があるのかもしれません。
時間が出来たときに試行錯誤してみたいと思います。

問題なく出来るケースもある(のだろう)
ということが分かり参考になりました。
ご回答ありがとうございました。

お礼日時:2010/10/19 15:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!