blob: b0128258ddfc01302d4a9c73275a78ef632d1348 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
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 <filename>, do:
cvs commit -m"<message here>" <filename>
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 | 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)
|