Using CVS to access Proof General repository ============================================ Here are some notes on how to access the PG repository remotely using CVS, using ssh with an account at dcs.ed.ac.uk 1. First configure ssh so that you can do `ssh ssh.dcs.ed.ac.uk' without a password (or passphrase). For this you need to run ssh-keygen and give an empty passphrase. Then you need to copy your ~/.ssh/identity.pub at home into ~/.ssh/authorized_keys at dcs.ed. 2. The CVS repository for PG is in ~proofgen/src at dcs.ed.ac.uk To use this, you need to set CVSROOT and CVS_RSH. I use the script below (the last line isn't essential but makes the settings inside a running emacs too) 3. Where you want to develop PG, do: cvs 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. #! /bin/bash MACHINE=ssh export CVSROOT=:ext:da@$MACHINE.dcs.ed.ac.uk:/home/proofgen/src export CVS_RSH=ssh export EDITOR=gnuclient gnudoit '(setenv "CVSROOT" ":ext:da@$MACHINE.dcs.ed.ac.uk:/home/proofgen/src")' '(setenv "CVS_RSH" "ssh")' '(message "set environment for CVS to /home/proofgen/src !")' ----------------------------------------------------------------- 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. This is needed to solve "localssh.dcs" versus "ssh.dcs" problem. ----------------------------------------------------------------- Moving to a new branch ====================== find * -path '*/CVS' -prune -o -path 'CVS' -prune -o -print | xargs cvs commit -m"Updating branch" -f -r 4.0