AROS

The Amiga Replacement OS


(C) 1996 AROS - The Amiga Replacement OS


Table of Contents

      3.2 One for all and all for one - CVS

        3.2.1 CVS on Un*x

        3.2.2 CVS on Amiga

        3.2.3 How to get access to the AROS CVS server

        3.2.4 Logging into the server

        3.2.5 How to get a copy of all AROS sources

        3.2.6 How to update the sources

        3.2.7 Committing changes

        3.2.8 Creating new files and directories

        3.2.9 More infos about CVS

      3.3 The jobserver

        3.3.1 What is this ?

        3.3.2 How does it work ?

        3.3.3 Some commands the jobserver understands


3.2 One for all and all for one - CVS

CVS is a software to maintain a database which contains the sources of a project one works on. The software offers a list of commands to merge the most recent version of the project with the local sources and to publish changes on has made over the Internet.

3.2.1 CVS on Un*x

If you have Linux or any other Un*x, then all you need is CVS 1.8 or better. If it's not already on your system (type cvs to find out), fetch if from one of the many GNU mirrors and install it in your $HOME.

Then get the AROS developer archive from the AmiNET and compile crypt.c (just say make crypt. Think of a good password and use crypt to encode it, like this:

Now skip the next section and read on in "How get access to the AROS CVS server".

3.2.2 CVS on Amiga

If you have an Amiga, you can participate, too. Just get the CVS from ADE, install it and get the demo for AmiTCP 4.0 (AmiTCP-demo-40.lha in comm/tcp) from AmiNET. You also must have ixemul.library 45.0 (should come with ADE) and ixnet.library in LIBS:. Then you can create your password with crypt out of the AROScrypt.lha archive from AmiNET (in dev/misc) like this:

(you must have the directory where crypt is stored in, in your path or you must do this in the same directory where crypt is). CVS doesn't work with Miami.

Miami uses a different routine for encrypting data than Un*x and therefore passwords generated with Miami won't work. Sorry.

3.2.3 How to get access to the AROS CVS server

Mail the password you have created to me: digulla@aros.fh-konstanz.de. The subject must be Access to AROS CVS Server and with this text in the mail:

Don't forget to fill in the information :-)

Wait until I confirm this. While you wait, look for CVS 1.8 or better if you haven't already done so.

3.2.4 Logging into the server

Before you can use any CVS commands, you must log into the server. To do this, use the CVS command "login":

where user is your login, eg. digulla:

This should ask you for your password. Type it in and if there is no error displayed, you are connected. If there is an error, try to omit the ":pserver:". If this still doesn't work, double check for typos and if you really, really, really can't find anything, then you got my email.

If the login has succeeded, then you can save you some typing by storing the argument to the -d option in the environment variable CVSROOT. Use

on Amiga or if you have a C shell (csh) and

for Bourne/Korn shells (bash, ksh).

On Amiga, you can make this permanent by copy env:CVSROOT envarc:, on Unix, you must add this to the shell's startup file (.cshrc, .profile, .bashrc, .tcshrc, etc. Read the manual of your shell to find out). If you don't know what kind of shell you have, just try echo $SHELL or echo $shell. This should print the name of your shell.

If you haven't set this variable, you must add -d ... right after cvs in the following examples.

Now you can use any CVS command to get a copy of all AROS sources, update your sources or commit the changes you made.

3.2.5 How to get a copy of all AROS sources

Use the CVS checkout command for this:

This will create a directory AROS and populate it with all sources.

3.2.6 How to update the sources

If you have some sources and just want to update them, you can use the CVS update command. Change to the AROS directory and do this:

This should merge any changes that other users have made into your sources and create all new directories and files. If you and someone else has changed the same file, then CVS will try to merge the changes. That is, if he changed the first part and you the end of the file, CVS will do all the work for you. If there are changes which CVS can't resolve (eg. you said x--; and the other one x=x-1;), then CVS will put both versions in the file. Search for <<<< to find such problems.

You should do this before any commit in case this happens. So before you commit, do an update, call make if any changes were made, fix the problems and then commit.

3.2.7 Committing changes

If you have changed a file, then you of course want to share your work with the other guys. To do this, use the CVS commit command:

You can specify a list of files after the commit or just do that in the AROS directory to commit all changes. CVS will then ask you what you did and send the changes to the CVS server for inclusion. Before you do that, you should always make an update (see the previous section) to avoid problems.

3.2.8 Creating new files and directories

You can also add new files or directories with the CVS add command:

or

Note that cvs add dir/file doesn't work. You can only add files in the current directory.

3.2.9 More infos about CVS

Well, CVS has man pages and info files and here is a nice link.

3.3 The jobserver

3.3.1 What is this ?

Well, it's more a task server. Its purpose is to allow multiple people to work at the same project at the same time without any two persons doing the same work twice. This is accomplished by the jobserver. It has a database with all tasks that are still to do, tasks that are currently under construction and tasks which are finished.

3.3.2 How does it work ?

Just send an EMail to

with the Subject: jobserv and in the body of the mail

It will list all commands that jobserv currently understands. Note that this is an automated service so the subject must match. jobserv ignores all lines in an email that it doesn't understand and stops reading at the first end or -- on a line of its own. jobserv will answer your EMails telling you what it did, what commands it did understand, which it did execute and which not and if not, why not. jobserv will also remember your EMail so others can see who added/requested/did which job - So don't worry you won't be credited for your work.

3.3.3 Some commands the jobserver understands

add <id> <description>
Add a new job with the id <id> and the short text <description> as an explanation. <id> may contain any character except whitespace. Here is an example: If the command was successful, the reply will tell you that a new job has been added to the database. If it wasn't successful, it will tell you why not (eg. because there is already a job with the same id).
req <id>
Allocate a task. This task will now be allocated by you. Your EMail will be stored with it so everyone can see who is working on that job and query you if you take too long or whatever.
done <id>
After you requested the job and finished it, you must tell jobserv that you're through.
show [free] [work] [done] [byme]
The most important command. It tells jobserv that you want to know what jobs are available and the like. All parameters are optional. "byme" is a flag which restricts the answer to jobs which match your EMail. The other flags are additive and restrict the reply to jobs which are still open, currently in progress or finished. So to see the jobs which were added and finished by you, use Note that jobserv doesn't remember that you added a task if someone else allocated it. The most useful variants will be: which shows everything that's still open and which shows what jobs you did allocate and haven't finished yet.

previous up next

If you have comments or suggestions, email me at digulla@aros.fh-konstanz.de . 03 Feb 1997