From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12683 invoked from network); 19 Nov 1999 16:58:33 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 19 Nov 1999 16:58:33 -0000 Received: (qmail 13140 invoked by alias); 19 Nov 1999 16:58:29 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 8689 Received: (qmail 13133 invoked from network); 19 Nov 1999 16:58:28 -0000 Date: Fri, 19 Nov 1999 16:58:05 +0000 From: Adam Spiers To: Zsh workers Subject: Re: CVS Message-ID: <19991119165805.A8612@thelonious.new.ox.ac.uk> Reply-To: Adam Spiers Mail-Followup-To: Zsh workers References: <38353964.45C936CB@u.genie.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0pre3i In-Reply-To: <38353964.45C936CB@u.genie.co.uk> X-URL: http://www.new.ox.ac.uk/~adam/ X-OS: Linux 2.2.12 i686 Oliver Kiddle (opk@u.genie.co.uk) wrote: > Seeing as all this CVS stuff seems to be approaching being > semi-official. Could someone who understands it all please write a > mini-readme to stick in the zsh distribution (or addition to the FAQ) > which lists all the various cvs mirrors and how someone like me who has > never used cvs can extract a copy of the latest version of zsh from it. Seen as I was the person who annoyed everyone by pushing hardest for general CVS usage, I've written a mini-howto which is below ... Sven, hope this is useful for you too. If someone more appropriate than me would like to grab it and add it to the FAQ/distribution/website/whatever then feel free. I agree that we should keep a list of the cvs mirrors somewhere too. On a vaguely related note, it would be nice to publicise all these new resources somewhere properly. zsh-announce and the website should certainly mention them. In fact, http://sunsite.auc.dk/zsh/ seems quite out of date in some respects. Can anyone do anything about this? Also, the freshmeat entry gives ftp://ftp.redhat.com/pub/contrib/i386/ as the location for RPM packages, but the latest available RPM seems to be 3.1.5. It would be nice to have official 3.0.6 RPMs on the zsh ftp site, and have the website link to these and maybe also the nightly build ones I've just set up (info on zsh-announce, when the post gets approved), so that RPM fans can easily get the most recent stable and development versions. Who's in control of the website these days? Anyway, back to the original topic ... -------- 8< -------- 8< -------- Here's pretty much all you need to know to be able to use the zsh CVS tree. It's simplified somewhat because you won't be needing to commit any changes back into the repository. First, ensure you have the cvs client installed :-) To checkout a working copy of the source from the repository: cd $WHERE_YOU_WANT_FILES cvs -z3 -d :pserver:anonymous@crane.jaist.ac.jp:/projects/zsh login cvs -z3 -d :pserver:anonymous@crane.jaist.ac.jp:/projects/zsh checkout zsh This will put the files in $WHERE_YOU_WANT_FILES/zsh. You only need to do the login once (it puts an entry in ~/.cvspass), and you only need to do the checkout more than once if you messed up your working copy and decided to rm -rf and start again. To merge the latest changes to the working copy into your working copy: cd $WHERE_YOU_WANT_FILES/zsh cvs -z3 update -dP (Notice that cvs caches the repository location in the CVS/Root file contained in every subdirectory of the working copy.) The `-z3' means compress the network traffic (it's a global option, and so appears before the `update' command). The `-d' means checkout any new directories which may have appeared in the repository, and the `-P' means prune empty directories. (They are both options specific to `update'.) If the update process find changes in the repository to a file you've modified locally, it will do its best to merge in the changes without complaining. However, if you've modified one of the bits in the file which has been changed in the repository, cvs will warn you of the conflict and expect you to resolve it by editing the file manually (in which case, search for `<<<<<' in the file to find the conflict). To find out differences between your working copy and the repository: cd $WHERE_YOU_WANT_FILES/zsh cvs diff -u > my.patch Then the file my.patch should contain a patch in the correct format for submitting to zsh-workers. (The `-u' is for unified diffs.) To create a patch from pure 3.1.6 to say, 3.1.6-bart-8: cvs patch -u -rzsh-3_1_6 -rzsh-3_1_6-bart-8 zsh > foo.patch emacs users have a nice interface to cvs from within emacs. See the `Version Control' section of the emacs info pages, or type C-x v C-h for a quick listing of related key bindings. cvs is extremely powerful, and there are many more things you can do. For quick summarised help, type: cvs --help cvs --help-commands cvs --help-options or cvs -H where is something like `update' or `checkout'. Or read the cvs man page, or even better, read the info pages, which I would strongly recommend that you do at some stage. Even reading through the overview at the beginning to give you a taster of the concepts involved would be worthwhile. Finally, if you find you always use certain switches with certain commands, you can put them in ~/.cvsrc like this: diff -u rdiff -u update -d I think that's the lot. Let me know if you have problems with any of this. Adam