KOIE Hidetaka (鯉江英隆)
hide @ koie.org
2003年 7月 29日 (火) 12:34:29 JST
Message-Id: <49C3556E6173D3nagamura @ funai.co.jp>
Date: Tue, 29 Jul 2003 10:11:46 +0900
From: 長村吉富@船井電機 <nagamura @ funai.co.jp>
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.org>