%
% cvs.tex
% Last Update: $Id$
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kapitel CVS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Das CVS-Paket}
\index{CVS}


\section{Die Einleitung}

    Dieses Paket erm"oglicht es, einen CVS-Server auf \eisfair zu installieren.
    Das CVS-Programm erm"oglicht zwar auch den Client-Betrieb, d.h. das man CVS
    nutzen kann, um von einem anderen CVS-Server etwas aus- bzw. einzuchecken,
    allerdings bietet dieses Paket keine Konfiguration dazu an.

\section{Die Installation}

    Das CVS-Paket wird "uber das Setup-Men"u installiert.



\section{Das Men"u im Setup-Programm}

    Das Men"u im Setup-Programm ist wie folgt aufgebaut:


    \mbox{}

    \begin{tabular}{llll}
    & x. &  Service administration \\
    \end{tabular}
\eline
    \begin{tabular}{p{1cm}llll}
    & x. &  CVS - Concurrent Version System \\
    \end{tabular}
\eline
    \begin{tabular}{p{2cm}llll}
    & 1. & View documentation \\
    & 2. & Edit configuration \\
    & 3. & Advanced configuration file handling \\
    & 4. & Show status (pserver) \\
    & 5. & Stop service (pserver) \\
    & 6. & Start service (pserver) \\
    \end{tabular}

    \mbox{}


    Die Men"upunkte d"urften selbsterkl"arend sein, da sie keinerlei weitere
    Eingabe erwarten. Deshalb wird auf deren Funktion nicht weiter eingegangen.


\section{Die "Anderung der Konfiguration}

    Die Konfiguration kann "uber den Men"upunkt \glqq{}Edit configuration\grqq{} ge"andert  werden.

    Nachdem der Editor beendet wurde wird abgefragt, ob die Konfiguration
    aktiviert werden soll. Wird dies best"atigt, werden "uber ein Skript
    die Anpassungen umgehend wirksam gemacht.


\section{Die Konfigurationsdatei}

    In der Konfigurationsdatei, die "uber das Men"u zug"anglich ist, sind
    folgende Parameter vorhanden; wer sie von Hand editieren will findet
    sie unter \\
    /etc/config.d/cvs.


\section{Die Parameter}

\begin{description}

\config{START\_VCS}
{START\_CVS}
{STARTCVS}
{
    F"ur die Aktivierung des 'cvs' Dienstes muss dieser Parameter
    lediglich auf den Wert 'yes' gestellt werden. Die Einstellung 'no'
    schaltet den 'cvs' Dienst ab.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{START\_CVS='no'}
}


\config{CVS\_ROOT\_N}
{CVS\_ROOT\_N}
{CVSROOTN}
{
    Wie viele CVS-Repositories sollen angelegt werden?

    G"ultige Werte: Zahl

      Standardeinstellung: \texttt{CVS\_ROOT\_N='0'}
}


\config{CVS\_ROOT\_x\_NAME}
{CVS\_ROOT\_x\_NAME}
{CVSROOTxNAME}
{
   Name des Repositories. Dieser Wert wird nicht ausgewertet.

   G"ultige Werte: Text

   Standardeinstellung: \texttt{CVS\_ROOT\_x\_NAME='{}'}
}


\config{CVS\_ROOT\_x\_ACTIVE}
{CVS\_ROOT\_x\_ACTIVE}
{CVSROOTxACTIVE}
{
    Aktives Repo, 'yes' oder 'no'

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{CVS\_ROOT\_x\_ACTIVE='no'}
}


\config{CVS\_ROOT\_x\_DIR}
{CVS\_ROOT\_x\_DIR}
{CVSROOTxDIR}
{
    Legt den Pfad fest, wo das CVS-Repository angelegt werden soll. Die
    Standardeinstellung daf"ur lautet '/srv/cvs'. Existiert in diesem
    Verzeichnis bereits ein CVS-Repository wird es nicht anger"uhrt,
    ansonsten wird es dort angelegt.

    G"ultige Werte: Pfadangabe

    Standardeinstellung: \texttt{CVS\_ROOT\_x\_DIR='/srv/cvs'}
}


\config{CVS\_PSERVER}
{CVS\_PSERVER}
{CVSPSERVER}
{
    Soll ein entfernter Zugriff mittels PServer m"oglich sein? Vorzuziehen
    ist ein Zugriff mittels SSH - deshalb sollte dieser Wert normalerweise
    auf 'no' stehen.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{CVS\_PSERVER='no'}
}

\end{description}


\section{CVS als Client benutzen}

Wenn man CVS doch als Client einsetzen m"ochte, hier eine kurze Anleitung dazu:

\begin{enumerate}
    \item Environment setzen:
        \begin{itemize}
            \item CVSROOT=:ext:<username>@<server\_name>:/cvs/
            \item CVS\_RSH=ssh
        \end{itemize}
    \item $\sim$/.ssh/config anlegen mit folgender Zeile: \\
    IdentityFile $\sim$/.ssh/id\_ed25519-key
    \item Key-Files generieren mit z.B.: \\
    ssh-keygen -o -a 100 -f id\_ed25519-key -t ed25519 -C 'comment'
    \item id\_ed25519-key.pub in $\sim$/.ssh/authorized\_keys auf dem Server
    eingetragen.
\end{enumerate}

