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. |
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.
|