The Concurrent Versions System (or CVS, see http://www.cyclic.com) provides network-transparent source control for groups of developers. For ordinary users it provides a very convenient way to obtain patched versions in between releases. CVS clients are available for most major platforms: Unix, MacOS, Windows (see http://www.wincvs.org/). This file documents access to the PARI CVS server, which is intended for PARI lovers who want the very latest bleeding edge release. The CVS sources compile cleanly and pass the bench suite on (one of) the administrator(s)'s machine(s), they may otherwise contain severe bugs. Stable releases are made available on a regular basis using the customary method: a message to pari-announce. 1) First connection to the anonymous CVS server: ================================================ Type the following commands from the shell cvs -d :pserver:cvs@megrez.math.u-bordeaux.fr:/home/megrez/cvsroot login Hit return when asked for a password (there's no password); then back to the shell prompt cvs -z3 -d :pserver:cvs@megrez.math.u-bordeaux.fr:/home/megrez/cvsroot checkout pari This last command creates a local copy of the distribution from the distant repository (in local directory 'pari'), using GNU gzip to compress the files during the transfer [ if gzip is not installed on your machine, remove the -z3 flag ]. From now on, you can go to this pari directory and use any cvs command directly (without the cryptic -d argument), as long as you remain there (or in a subdirectory). Password won't be required again. 2) What can I do now ? ====================== * You can build pari in the usual way (see INSTALL) as if this 'pari' directory had been created by fetching then extracting an archive on an FTP server. * You can update your local copy at any time using 'cvs update', which will put you in synch with the repository. * You can check exact differences between successive versions of a given file by using 'cvs diff'. If you modify some files on your local copy, this also enables you to track down your changes, and produce a patch. You won't be able to commit your changes using anonymous access. Send the output of 'cvs diff' [with flag -c if your local diff supports it] to the pari-dev mailing list with a short description of what you've done, or to pari@math.u-bordeaux.fr if you're not subscribed to pari-dev. If you plan to do that on a regular basis (which would be very nice :-), send a note to pari-dev, telling what kind of development work you're interested in, and ask for the rights to modify the repository directly. Once this is granted, you'll be able to log in as 'cvsadmin' (the CVS administrator) instead of 'cvs' (CVS user) as described above and you'll be able to use 'cvs commit'. NOTES and CAVEATS: ================== * you can speed up file transfers by using cvs -z3 (transfer files in compressed format), e.g 'cvs -z3 update' if you've missed a lot of patches, or 'cvs -z3 checkout' for the initial checkout. This requires that GNU gzip be in your path. You can create a .cvsrc file in your home directory containing lines of the form: cvs -z3 [ use gzip -3 for all transfers ] diff -c [ use diff -c (context diff) by default in 'cvs diff' ] * once you've run Configure, some files/directory will be created in the local copy which are not under CVS control (only the master files are). These are O-* Makefile.O-* examples/Makefile.- doc/Makefile doc/gphelp doc/paricfg.tex doc/*.[aux | dvi | idx | log | ps | std | toc] emacs/pari.el After a global 'cvs diff', or 'cvs status', you can safely ignore all messages pertaining to them (e.g "? doc/Makefile"). * 'cvs diff' gives you the difference between your local copy and the sources they were based on, not with the current state of the repository. Use 'cvs diff -D now' for that. * All project files have an individual version number, independant of the release numbering scheme. Official releases (starting from version 2.0.17) are 'tagged' so that all files pertaining to a given release can be simultaneously accessed without tracking version numbers. Tag names are 'release-VERSION', e.g 'release-2-0-20'. * On Windows 95/98/2000 + Cygwin, you may have to explicitly set HOME (e.g in your .bashrc) to some existing directory otherwise CVS will abort on startup (when trying to create a .cvspass file).