From 6857440d8b99a0d6d56e1e567a06830f4ed30efd Mon Sep 17 00:00:00 2001 From: simonm Date: Tue, 7 Apr 1998 11:21:58 +0000 Subject: [PATCH] [project @ 1998-04-07 11:21:58 by simonm] Add new HTML version of the CVS Cheat Sheet with instructions on how to use remote read-only CVS. --- docs/cvs-cheat-sheet.html | 393 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 393 insertions(+) create mode 100644 docs/cvs-cheat-sheet.html diff --git a/docs/cvs-cheat-sheet.html b/docs/cvs-cheat-sheet.html new file mode 100644 index 0000000..3990999 --- /dev/null +++ b/docs/cvs-cheat-sheet.html @@ -0,0 +1,393 @@ + + + + Access To The GHC CVS Repository + + + + +

FP Tools CVS Cheat Sheet

+ +

At Glasgow, we use CVS (Concurrent Version System) to keep track +of our sources for various software projects. CVS lets several people +work on the same software at the same time, allowing changes to be +checked in incrementally. + +

Information on using CVS can be obtained from Cyclic Software. If you're at +Glasgow, the full documentation for CVS is online, in info format (use +'info cvs' or run emacs and type C-h i). A good source of tips is the +CVS FAQ, in /local/doc/gnu/CVS.FAQ. Bradley C. Kuszmaul also provides +a "to the point" introduction +to CVS. + +

This note is supposed to be a set of guidelines for how to use our +CVS repository, and will probably evolve in time. The main thing to +remember is that most mistakes can be undone, but if there's anything +you're not sure about feel free to bug the local CVS meister (namely +Simon Marlow). + +

Contents + +

+ +

Remote Read-only CVS Access

+ +

Read-only access is available to anyone - there's no need to ask +us first. We use the anoncvs mechanism pioneered +by the OpenBSD folks. To get +read-only access to our repository, just set your CVSROOT environment +variable to + +

+	anoncvs@solander.dcs.gla.ac.uk:/cvs
+
+ +

and you can then check out a source tree using normal CVS commands. +For example: + +

+	$ cvs checkout fpconfig
+	$ cd fptools
+	$ cvs checkout ghc
+
+ +

gets a brand spanking new set of GHC sources. The layout of our +CVS repository is described below, under Using CVS for the first time. + +

With read-only CVS access you can do anything except commit changes +to the repository. You can make changes to your local tree, and still +use CVS's merge facility to keep your tree up to date, and you can +generate patches using 'cvs diff' in order to send to us for +inclusion. + +

If you like, you can use ssh instead of the standard +rsh to connect to the CVS server. Just set your +CVS_RSH variable to ssh. + +

Remote Read-Write CVS Access

+ +

We generally supply read-write access to folk doing serious +development on some part of the source tree, when going through us +would be a pain. If you're developing some feature, or think you have +the time and inclination to fix bugs in our sources, feel free to ask +for read-write access. There is a certain amount of responsibility +that goes with commit privileges; we are more likely to grant you +access if you've demonstrated your competence by sending us patches +via mail in the past. + +

To use remote CVS, you need to supply me with a username and +encrypted password. Once you've done that and the account has been +set up, you need to do: + +

+     cvs -d <username>@solander.dcs.gla.ac.uk:/local/fp/src/cvsroot login
+
+ +

CVS will ask for a password. You only need to enter the password +once, it will be recorded in .cvspass in your home directory. + +

+   setenv CVSROOT :pserver:<username>@solander.dcs.gla.ac.uk:/local/fp/src/cvsroot
+
+ +

The CVSROOT environment variable will be recorded in the +checked-out tree, so you don't need to set this every time either. +Ignore the instructions for setting CVSROOT below. + + +

Using CVS for the First Time

+ + + +

Checking Out a Source Tree

+ + + + +

Committing Your Changes

+ +

This is only if you have read-write access to the repository. For +anoncvs users, CVS will issue a "read-only repository" error if you +try to commit changes. + +

+ +

Updating Your Source Tree

+ +

It can be tempting to cvs update just part of a source tree to +bring in some changes that someone else has made, or before committing +your own changes. This is NOT RECOMMENDED! Quite often changes in +one part of the tree are dependent on changes in another part of the +tree (the mk/*.mk files are a good example where problems +crop up quite often). Having an inconsistent tree is a major cause of +headaches. + +

So, to avoid a lot of hassle, follow this recipe for updating your +tree: + +

+$ cd fptools
+$ cvs update -Pd 2>&1 | tee log
+
+ +

Look at the log file, and fix any conflicts (denoted by a 'C' in the +first column). If you're using multiple build trees, then for every +build tree you have pointing at this source tree, you need to update +the links in case any new files have appeared: + +

+$ cd <build-tree>
+$ lndir <source-tree>
+
+ +

Some files might have been removed, so you need to remove the links +pointing to these non-existent files: + +

+$ find . -xtype l -exec rm '{}' \;
+
+ +

And finally, re-configure to take into accound any changes in +mk/config.mk.in. + +

+$ ./configure
+
+ +

To be *really* safe, you should do + +

+$ gmake boot && gmake all
+
+ +

from the top-level, to update the dependencies and build any changed +files. + + +

General Hints

+ + + +Ok, that'll do for now. If there's anything else you'd like to see in +this file, just let me know. + +

Simon Marlow + + + -- 1.7.10.4