Using CVS to access Proof General repository ============================================ Here are some notes on how to access the PG repository remotely using CVS, using pserver access to cvs.inf.ed.ac.uk 0. If you want write access to the Proof General repository, fill in the web form here to apply for an account: http://www.informatics.ed.ac.uk/systems/cvs/new/ The request will be processed manually and confirmed with the Proof General maintainer (David Aspinall), so you should discuss with him before applying. 1. Login to the CVS server: cvs -d :pserver:@cvs.inf.ed.ac.uk:/disk/cvs/proofgen login Replace with your username, or with "anon" for anonymous access. 2. Checkout the repository: cvs -d :pserver:@cvs.inf.ed.ac.uk:/disk/cvs/proofgen checkout ProofGeneral Inside the ProofGeneral directory, to retrieve the latest updates, do: cvs update To commit some changes to file , do: cvs commit -m"" See "man cvs" for (much) more. ----------------------------------------------------------------- Making a branch to patch a previous release: ============================================ cvs checkout -r Release-3-1-3 ProofGeneral cd ProofGeneral cvs tag -b Release-3-1-branch # Drop this repo, has sticky tag for 3-1-3. cd .. ; cvs release -d ProofGeneral # Get new one cvs checkout -r Release-3-1-branch ProofGeneral cd ProofGeneral patch ... blah ... cvs commit ... blah .. Then make release as ~proofgen: mkdir oldbranch cd oldbranch cvs checkout -r Release-3-1-branch ProofGeneral make devel.releaseall VERSION=3.1 FULLVERSION=3.1.99 NB: See warning in Makefile.devel about this (it will downgrade web pages). Then perhaps merge in branch changes into main stream: cd projects/proofgen/ProofGeneral cvs update -jRelease-3-1-branch NB: this merging will always create conficts with $Id$ tags in source. (Is there a way to avoid this?) Overriding the CVS/Root setting temporarily: ============================================ Use cvs -d $CVSROOT NB: This doesn't alter CVS/Root, but uses NEWROOT in preference. ($CVSROOT does not overide CVS/Root at all). Useful command: alias cvs='cvs -d $CVSROOT' to force this behaviour. Moving to a new branch ====================== This only works on a clean repository (no spurious files): find * -path '*/CVS' -prune -o -path 'CVS' -prune -o -print | tr '\n' '\0' | xargs -0 cvs commit -m"Updating branch" -f -r 4.0 (The tr is needed because of some nasty filenames, e.g. etc/isa/\backslashname) Updating base revision number ============================= Starting with a new base revision number is handy to easily see changes since last release. cvs commit -f -R -r 12.0 -m"Update base revision number for 4.2 development cycle" . cvs up -A Need second update to remove automatically added sticky tag.