home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 18
/
aminetcdnumber181997.iso
/
Aminet
/
misc
/
emu
/
AROSdev.lha
/
AROS
/
docs
/
src
/
devinfo-2.src
(
.txt
)
< prev
next >
Wrap
LaTeX Document
|
1997-01-27
|
9KB
|
203 lines
\section{One for all and all for one - CVS}
\label{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.
\subsection{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 \shell{cvs} to find out), fetch
if from one of the many GNU mirrors and install it in your \filename{$HOME}.
Then get the AROS developer archive from the AmiNET and compile
\filename{crypt.c} (just say \shell{make crypt}. Think of a good password
and use \filename{crypt} to encode it, like this:
\begin{example}
> make crypt
> crypt my_password
Encrypting my_password: cbEVHg0j9uNRs
\end{example}
Now skip the next section and read on in "How get access to the AROS CVS
server".
\subsection{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 (\filename{AmiTCP-demo-40.lha}
in \filename{comm/tcp}) from AmiNET. You also must have
\filename{ixemul.library} 45.0 (should come with ADE) and
\filename{ixnet.library} in \filename{LIBS:}. Then you can create
your password with \filename{crypt} out of the \filename{AROScrypt.lha}
archive from AmiNET (in \filename{dev/misc}) like this:
\begin{example}
> run amitcp:amitcp
[CLI 8]
> crypt my_password
Encrypting my_password: cbEVHg0j9uNRs
\end{example}
(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).
\bold{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.
\subsection{How to get access to the AROS CVS server}
Mail the password you have created to me:
\email{digulla@aros.fh-konstanz.de}. The subject must be
\shell{Access to AROS CVS Server} and with this text in the mail:
\begin{example}
Please add <my_login, eg. digulla> <password, eg. cbEVHg0j9uNRs>
\end{example}
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.
\subsection{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":
\begin{example}
> cvs -d :pserver:user@aros.fh-konstanz.de:/home/AROS/CVS login
\end{example}
where \shell{user} is your login, eg. digulla:
\begin{example}
> cvs -d :pserver:digulla@aros.fh-konstanz.de:/home/AROS/CVS login
\end{example}
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.
\begin{emph}
It seems that the protocol for CVS has changed. Version of CVS
upto 1.8.1 and earlier need not have ":pserver:" before the login name,
but later versions require it. If you have problems to login, try to omit
":pserver:" or prepend it. If CVS wants it, you will get an error reading
"cvs login: can only use pserver method with `login' command".
\end{emph}
If the login has succeeded, then you can save you some typing by storing
the argument to the \shell{-d} option in the environment
variable \shell{CVSROOT}. Use
\begin{example}
setenv CVSROOT :pserver:user@aros.fh-konstanz.de:/home/AROS/CVS
\end{example}
on Amiga or if you have a C shell (csh) and
\begin{example}
export CVSROOT=:pserver:user@aros.fh-konstanz.de:/home/AROS/CVS
\end{example}
for Bourne/Korn shells (bash, ksh).
On Amiga, you can make this
permanent by \shell{copy env:CVSROOT envarc:}, on Unix, you must add
this to the shell's startup file (\filename{.cshrc}, \filename{.profile},
\filename{.bashrc}, \filename{.tcshrc}, etc. Read the manual of your
shell to find out). If you don't know what kind of shell you have,
just try \shell{echo $SHELL} or \shell{echo $shell}. This should
print the name of your shell.
If you haven't set this variable, you must add \shell{-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.
\subsection{How to get a copy of all AROS sources}
Use the CVS checkout command for this:
\begin{example}
> cvs checkout AROS
\end{example}
This will create a
directory AROS and populate it with all sources.
\subsection{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:
\begin{example}
> cvs update
\end{example}
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 \bold{both} versions in the file. Search for \shell{<<<<}
to find such problems.
You should do this before any commit in case this happens. So before
you commit, do an update, call \filename{make} if any changes were
made, fix the problems and then commit.
\subsection{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:
\begin{example}
> cvs commit
\end{example}
You can specify a list of files after the \shell{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.
\subsection{Creating new files and directories}
You can also add new files or directories with the CVS add command:
\begin{example}
> cvs add file.c
\end{example}
\begin{example}
> cvs add dir
\end{example}
Note that \shell{cvs add dir/file} doesn't work. You can only add
files in the current directory.
\subsection{More infos about CVS}
Well, CVS has man pages and info files and here is a nice
\link{link}{http://www.loria.fr/~molli/cvs-index.html}.
\section{The jobserver}
\subsection{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.
\subsection{How does it work ?}
Just send an EMail to
\begin{example}
aros@aros.fh-konstanz.de
\end{example}
with the \shell{Subject: jobserv} and in the body of the mail
\begin{example}
\end{example}
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
\shell{end} or \shell{--} 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.
\subsection{Some commands the jobserver understands}
\begin{description}
\item{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:
\begin{example}
add exec00001 Write AddHead
\end{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).
\item{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.
\item{done <id>} After you requested the job and finished it, you must tell
jobserv that you're through.
\item{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
\begin{example}
show free done byme
\end{example}
Note that jobserv doesn't remember that you added a task if
someone else allocated it. The most useful variants will be:
\begin{example}
show free
\end{example}
which shows everything that's still open and
\begin{example}
show work byme
\end{example}
which shows what jobs you did allocate and haven't finished
yet.
\end{description}