[cvs-jp-info 235] Re: ベンダーブランチからの取り込みについて

Back to archive index

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



CVS-JP-info メーリングリストの案内
Back to archive index