aboutsummaryrefslogtreecommitdiffhomepage
path: root/etc/cvs-tips.txt
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)