Free High School Science Texts


Free High School Science Texts
RW James Building, University of Cape Town
Rondebosch 7701, South Africa


+27 21 650 3366
NPO Registration Number: 037-269-NPO
 
 
Home Project How to help Team For Authors Contact us 
Getting started  |  Etiquette  |  LaTeX  |  PSTricks  |  Guidelines  |  CVS  |  Status


What is the Free High School Science Textbook?
The FHSST is the contribution of a group of young scientists towards furthering science education in South Africa. We aim to provide a free science textbook for Grades 10 - 12 to all South African learners.

Read our textbooks
Physics
Chemistry
Mathematics
Life Sciences
Cover coming soon
Computer Literacy


Administration
Visit our project administration web pages hosted on Savannah.

What is CVS and how to use it

CVS usage is not essential for contributing to FHSST. It makes coordination easier for us but we will gladly accept help in any form.

Concurrent Versions System (CVS) is basically a tool for collaborating. In practical terms a server exists which every member can connect to. This server stores copies of all our documents. As a user you connect to the server and retrieve the current documents onto your personal computer. Then you edit them and send your changes back to the server. Other members of the project who connect to the server will then be able to retrieve your changes onto their own personal machines.
The things that make CVS particularly useful are:
  • it keeps track of all changes - this means that everytime an edit is sent to the server it updates a version number for each edited file. At any time you can go back and retrieve a version of the document at any stage in its development.
  • if two people edit the same file in conflicting ways the first person to commit will have no problems but the second person will not be allowed to commit their changes and they will be warned of a conflict. It is their responsibility to update their document and resolve the conflict.
  • we have a central place to backup everyones work without having to worry about keeping track of individual changes etc.
  • even if things go wrong we can always go back.

The jargon that you need to be familiar with is quite simple. The server storage is the repository. When you retrieve a copy of the repository it is called a checkout. When you send your changes back to the repository it is called a commit. If you have a copy of the repository and you want to get other people's edits included in your own copy you update your copy of the repository.
The procedure we recommend you follow is:
  • checkout the repository
  • everytime you begin working you should update to ensure you are working on the latest version of the files
  • before you commit you should update again to check that while you were editing no other changes were made to the files. You will be warned if there is a conflict.
  • text that is in conflict will be between >>>>>>>>and <<<<<<<<<<and >>>>>>>>. Once you have reached this stage you may resolve the conflict and commit.

Using CVS on Windows

  • You need to make a free account on Savannah.
  • Send one of the project administrators your username so we can add you to the project. We must add you before you will be able to access CVS.
  • Download 3 programs - Pageant, puTTYgen and TortoiseCVS.
  • Run puTTYgen and make a DSA key. Save the private key in a file and the public key in another file in a folder where you will not delete them.
  • Now you need to register your public key. To do this go to your Savannah homepage at the top there is a link to Account Configuration. Follow this link and on the configuration page there is a link "Edit the 0 SSH Public Key(s) Registered" thats the link to follow. You need to cut and paste your public key into the text box. Once you have done that click "Update". There is a 1 hour delay.
    Note: Be sure to copy the whole thing at once (i.e. as one line) and paste it as one line - it will take two lines even though you did it as a single line - this is correct.
  • Install TortoiseCVS, its the program that will talk to the CVS server for you.
  • Now run Pageant; a little icon of a computer with a hat will appear on the toolbar. This is the program that makes it possible to use keys to communicate - keys aren't built into Windows like in Linux. Right-click on the hat and on the menu select Add Key. Select your private key file that you saved earlier. Now windows knows about your keys. Windows has your private key and Savannah has your public key and so you can now do secure communication.
  • Now to actually get the books from CVS. Right click on your desktop, the menu will have some little tortoise icons. You want to do a "checkout" (i.e. get a copy of the books). Click on the checkout icon. It will ask all sorts of questions - here are the answers:

    CVSROOT = :ext:<username>@cvs.sv.gnu.org:/cvsroot/fhsst
    module name = fhsst

    Replace <username> with your savannah username. Now it should checkout a directory called fhsst with all our stuff in it. If you modify a file right-click on its icon and click on commit. You will be asked for a log message and then it will send the changes to the server.

Using CVS on Linux

There is a great guide to CVS under Linux available, which I recommend you bookmark. It has everything from how to do the basic tasks through to how configure your own server.
  • Open a terminal and if you have not yet created a DSA key you can do so by executing (save the keys in the default files - just press <RETURN> when prompted for filenames and passphrases):
    ssh-keygen -t dsa
    Your public key has been saved in ~/.ssh/id_dsa.pub and we now need to register it on your Savannah homepage.
  • To register your public key go to your Savannah homepage at the top there is a link to Account Configuration. Follow this link and on the configuration page there is a link "Edit the 0 SSH Public Key(s) Registered" thats the link to follow. You need to cut and paste your public key into the text box. Once you have done that click "Update". There is a 1 hour delay.
    Note: Be sure to copy the whole thing at once (i.e. as one line) and paste it as one line - it will take two lines even though you did it as a single line - this is correct.
  • Once sufficient time has passed you should be able to access the CVS server. To get the books requires that you set two environment variables:
    bash
    export CVS_RSH=ssh
    export CVSROOT=:ext:<username>@subversions.gnu.org:/cvsroot/fhsst
    csh
    setenv CVS_RSH ssh
    setenv CVSROOT :ext:<username>@sv.cvs.gnu.org:/cvsroot/fhsst
  • Replace <username> with your savannah username. Once this is complete execute the following command to get the books:

    cvs co fhsst

    Now it should checkout a directory called fhsst with all our stuff in it. If you modify a file right-click on its icon and click on commit. You will be asked for a log message and then it will send the changes to the server.