Path: katsu From: katsu@sra.co.jp (WATANABE Katsuhiro) Message-ID: Date: 25 Nov 1994 05:17:16 GMT Organization: Software Research Associates, Inc.,Japan In-reply-to: soda@sra.co.jp's message of Thu, 24 Nov 1994 09:26:48 GMT Newsgroups: sra.os.unix Subject: Re: CVS 1.3 "update -j" ignores add-ed or remove-ed files. Distribution: sra References: 記事 で soda@sra.co.jp (Noriyuki Soda) さんいはく > >>>>> On Thu, 24 Nov 1994 08:51:48 GMT, > katsu@sra.co.jp (WATANABE Katsuhiro) said: > > > import --- BranchPoint --- cvs add f3 --- cvs remove f2 ---- HEAD > > {f1,f2} | > > +--------------- BranchA ------------------------ > > > というようなブランチ木が構成された時に、working directory で > > cvs update -r BranchA > > とやってブランチ BranchA に移り、そこで > > cvs update -j BranchPoint -j HEAD > > とやって BranchPoint から HEAD までの変更を BranchA にマージしようと思 > > いました。ところがやってみると、f3 は現れないし、f2 は存在したままです。 > > 警告等も f3 に関しては何も出ません。これは仕様でしょうか? > > 仕様かどうかは分かりませんが、こういうものだと思ってます。 > 手作業で > cvs tag -b BranchA f3 > すれば、add した方は、まだどうにかなりますが、remove したものは… > join する前にブランチの方にタグを振っておいて、 > cvs tag -d BranchA f2 > するしかないかな…(うまくいくかどうかは、知りません) maint trunk で removeした時点で、既に f2 は Attic に入ってますよね。だ から、ブランチ上で remove するのも、普通に cvs remove; cvs commit すれ ばいいのでは?(というように、いちいち実装を思い出して動きを想像するの はいやだなあ。) > # cvs-1.4alpha は、まだ使ってないんですが、どうなんでしょう? > # ご存知です? 私はまだ試してません。 > それから、cvs-1.3 は、branch 上で cvs add/cvs remove すると、問題が起 > きるように思います。 remove の方は問題ないはずです。ブランチタグを取り除けばよいのですから。 add が問題なのは、単にそのファイルを repository に置いてしまうと自動的 に trunk にも現れてしまうので、Attic に置かざるを得ないが、Attic に置 くには cvs commit ではだめで、cvs commit -r BranchA としなければならな いという点でしょう。 > それと… > ・できるだけブランチではなく #ifdef で対処する > ・作業メンバーが一人しかいないなら、ブランチではなく、単に別の work >  space を作るだけにする。(その work space では、マージを開始するまで >  は、決して cvs update を行なわない) > というのが、いいんじゃないかなと思います。 > 人に聞かれたときは、「できる限りブランチは使うな」と勧めてます :-) 弱った...... 他社でのコンサルティングのときに、少しづつ違う沢山のプラットフォームで 動かすシステムのソース群を管理するのに、「CVS 使いましょう。ブランチな んてのもあります。」って言ってしまったからなあ。それで仕事ももらってし まったし。「ディレクトリ構成が変わると大変です」と一言釘は押してあった けど、お客さんは覚えてないだろうなあ。まあ、今まで全然 version control やってなかったようだから、便利だと思ってはもらえるはずだけど。 -- 渡邊克宏@四谷