KOIE Hidetaka (鯉江英隆)
hide****@koie*****
2003年 7月 29日 (火) 12:34:29 JST
Message-Id: <49C35****@funai*****> Date: Tue, 29 Jul 2003 10:11:46 +0900 From: 長村吉富@船井電機 <nagam****@funai*****> Subject: [cvs-jp-info 234] Re: ベンダーブランチからの取り込みにつ.. | | 早速、ご返答有り難うございます。 | | > | 現在管理しているベンダーブランチのソースは | > | よくディレクトリの構成がかわります。 | > | つまりあるディレクトリでは、サブディレクトリが | > | 丸ごと無くなってしまうことがあります。 | > | | > | ここで、 | > | 上記のブランチを取り込む(updateする)と | > | 最新のベンダーからのリリースでは無くなっている | > | ディレクトリが残ったままになります。 | > | importでも取り込んでくるので、 | > | >「importでも取り込んでくる」とはどのような状況でしょうか。 | | すいません「checkoutでも取り込んでくる」の間違いでした。 「取り込む」というと「リポジトリへ」とおもってしまいました。 もちろん、チーム内で、commitやimportのことを「反映する」、 checkoutやupdateのことを「取り込む」と 一貫して使われているのなら問題ないとおもいます。 | はい。今回は空のディレクトリを取り込まない方法ではなく、 | ベンダーが最後にリリースした以外のディレクトリを | 取り込まなくてよい方法をご質問させていただきました。 | | ベンダーがリリースしたソースをimportすると、 | ファイルが追加になった情報はリポジトリに反映されますが、 | ファイルが消えた情報は反映されないようで、 | 結果として古いリリースのファイルが残ります。 | | 質問を言い換えると、 | 新しいベンダーのリリースをimportしたとき、 | 今回のリリースで無くなったファイルorディレクトリは | 消えてしまったとCVSに思わせる方法はないでしょうか? この問題は認識しているのですが どうやるのが正しいのか知りません。 手元で試してみたところ、以下の手順で解決できそうです。 tar xzf /.../proj1.tar.gz cd proj cvs imporrt -m "" proj PROJ-VENDOR PROJ-REL1 cd .. rm -rf proj tar xzf /.../proj2.tar.gz cd proj cvs import -m "" proj PROJ-VENDOR PROJ-REL2 cd .. rm -rf proj cvs checkout proj cd proj cvs update -j PROJ-REL1 -j PROJ-REL2 #これによりREL2で消えたファイルがcvs removeされる cvs commit -m "" cvs update -dP #これによりREL2で消えたディレクトリを作業ディレクトリから消える 別のやりかたは cvs import をつかわない方法です。 tar xzf /.../proj1.tar.gz cd proj cvs imporrt -m "" proj PROJ-VENDOR PROJ-REL1 cd .. rm -rf proj cvs checkout proj -dP cd proj find . -name CVS -prune -o -type f -print | xargs rm #CVS/の下のファイルは残して、それ以外のファイルを消す。 cd .. tar xzf /.../proj2.tar.gz cd proj cvs -nq update | grep '^?' | awk '{print $2}' | xargs cvs add #REL2で追加されたファイルをcvs addする cvs -nq update | grep '^U' | awk '{print $2}' | xargs cvs remove #REL2でなくなってしまったファイルをcvs removeする cvs commit -m "" cvs update -dP -- 鯉江英隆 <hide****@koie*****>