From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26817 invoked from network); 18 Sep 1999 07:05:20 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 18 Sep 1999 07:05:19 -0000 Received: (qmail 5624 invoked by alias); 18 Sep 1999 07:05:11 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 7926 Received: (qmail 5617 invoked from network); 18 Sep 1999 07:05:08 -0000 From: "Bart Schaefer" Message-Id: <990918070452.ZM54@candle.brasslantern.com> Date: Sat, 18 Sep 1999 07:04:52 +0000 In-Reply-To: <19990916164622.B17248@thelonious.new.ox.ac.uk> Comments: In reply to Adam Spiers "Re: CVS (slightly off-topic)" (Sep 16, 4:46pm) References: <990907162927.ZM32134@candle.brasslantern.com> <199909080900.LAA08747@paris.ifh.de> <19990908114038.B20503@thelonious.new.ox.ac.uk> <19990916164622.B17248@thelonious.new.ox.ac.uk> X-Mailer: Z-Mail (5.0.0 30July97) To: Adam Spiers , Zsh hackers list Subject: Re: CVS (slightly off-topic) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Sep 16, 4:46pm, Adam Spiers wrote: } Subject: Re: CVS (slightly off-topic) } } For reference, in case anyone in the future who hasn't already is } thinking of going down the CVS route, and is reading this thread, } something to be wary of is that if you do more than one import onto a } vendor branch, you have to check for any files present in the first } import but not the second. Do a `find . -print | sort' in both } directories, and then do a } } cvs remove -f `comm -23 filelist_a filelist_b` } } on the respective outputs. If you found that you needed to do this, then you've done something else wrong, or you have a really old version of CVS. This should be handled for you by the import and merge process. (The first thing you did wrong was "find . -print | sort" instead of "print -l **/*(D)", but that has nothing to do with CVS.) I'm assuming you did something like this: import vendor-rev-A checkout trunk import vendor-rev-B import vendor-rev-C update trunk The correct way to update the trunk sandbox in that instance is to do BOTH: cvs update cvs update -jvendor-rev-A -jvendor-rev-C The plain "cvs update" will add any new files from rev-B or rev-C that are not in rev-A. The "cvs update -j... -j..." will merge changes to any other files since rev-A, including removing any files no longer present at rev-C. The import of rev-C should itself have removed any files new at rev-B but that are no longer present in rev-C. The one case where this might fail is when you have modified (but not committed) a rev-A file in your sandbox that is one of those removed at either rev-B or rev-C. In that case you should get a conflict report at the "cvs update -j... -j..." stage, which you will have to resolve (possibly by using "cvs remove"). It's best to commit everything you possibly can *before* doing the merge. I'd actually update, resolve conflicts, and commit after EACH import, rather than doing two imports in a row; but that's just to minimize the size of the conflicts I might have to resolve. } I also had one weird conflict error reported in Completion/User/_cvs } when I imported 3.1.6-pws-4 which I had to deal with manually. No } idea why. If you've applied any patches from the list to your trunk sandbox, "cvs import" may report conflicts. They're not real conflicts unless they're also reported by "cvs update -j... -j...", in which case they might mean that PWS tweaked something without posting it, or that you missed a patch, or that PWS missed one. -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.brasslantern.com