5/03: CVS

Einrichen von CVS unter Linux, Access von Windows aus mit TortoiseCVS

1. Meine Voraussetzungen:

  • SuSe Linux 9.1 Pro, mit Standard-Einstellungen installiert
  • Funktionierender SSH-Zugang von Windows aus

2. Installation des CVS-Servers unter Linux

Zuerst mit YAST überprüfen, ob die CVS-Komponenten installiert sind. Allenfalls nachinstallieren. Mit folgendem Befehl kann mit der Shell überprüft werden, ob CVS korekt installiert ist:

cvs -v

3. Erstellen eines Repository

Als nächstens kann bereits mit dem Erstellen eines Repository begonnen werden. Damit ist der Ort gemeint, in dem die zu verwaltenden Dokumente und Dateien gespeichert werden. Im Gegensatz zu Microsoft Source Safe werden bei CVS die Daten „lesbar“ in diesem Verzeichnis gespeichert. Man kann beliebig viele solcher Repositories erstellen. Der Befehl dazu lautet:

cvs -d ./repos init

Damit wird im Verzeichnis „repos“ ein Repository erzeugt. Der Parameter -d wird auch noch bei anderen Befehlen verwendet und kann mit destination übersetzt werden.

4. CVS von der Kommandozeile aus bedienen

Ein neues Projekt erzeugen / Dateien importieren:

cvs -d ./repos import -m „“ testproj testproj initial

Anmerkungen: dieser Befehl wird im Verzeichnis ausgeführt, in dem sich die zu importierenden Dateien befinden (z.B. ein temporäres Verzeichnis). Nach dem definieren des Repository (-d ./repos) kommt das Schlüsselwort import. Mit -m „“ hätte man die Möglichkeit, einen Kommentar hinzuzufügen. Danach kommt zwei Mal der Name des Projekts, danach das Schlüsselwort „initial“.

Auschecken von Projekten:

cvs -d ./repos co testproj

Anmerkungen: dieser Befehl wird im Verzeichnis ausgeführt, in das die Dateien geholt werden sollen (auschecken = Projekte von einem Repository lokal speichern). co = abbr. für checkout; testproj ist der Name des Projekts.

… (weitere Befehle folgen)

5. Installation und Konfiguration von TortoiseCVS

TortoiseCVS kann auf der Website http://www.tortoisecvs.org/ heruntergeladen werden. Nach der Installation ist ein Neustart nötig. Anschliessend stehen die Befehle direkt per Kontextmenü auf beliebige Ordner zur Verfügung. Mit „CVS Checkout“ können die Daten eines Repository in den gewählten Ordner geholt werden. Bei dieser Aktion muss dann eine Art Connection-String angegeben werden:

cvs_1

Im Feld Modul kann man angegeben, welches Projekt man holen möchte. Die weiteren Optionen und Möglichkeiten von TortoiseCVS sind in der Hilfe ersichtlich. Dort ist auch die Funkionaltiät beschrieben, mit welchen Symbolen die Dateien angezeigt werden, wie man Dateien comitted, wie man Branches und Tags erstellt etc.

Eine Besonderheit gilt es jedoch noch zu beachten. Und zwar unterstüzt SuSe-Linux 9.1 in der Standardinstallation nur das SSH Protocol Version 2. Dies muss in der Konfiguration von TortoiseCVS noch speziell ergänzt werden. Dazu Start –> Programme –> TortoiseCVS –> Preferences wählen und im Register „Tools“ unter „SSH Parameters“ den Wert „-2“ eintragen:

cvs_2

Ansonsten wird das Passwort vom Linux-Server zurückgewiesen. In diesem Bildschirm kann man auch noch ein benutzerdefiniertes Diff-Tool angeben. Dazu ist WinMerge (http://winmerge.sourceforge.net/) zu empfehlen, das ein visueller Vergleich mit Syntax hervorhebung (und einiges mehr) bietet.

6. Passworteingabe automatisieren

Etwas ärgerlich ist, wenn man grosse Projekte committed und dabei bei jedem File das Passwort erneut eingeben muss. Die Lösung liegt bei der Benutzung der Authentifizierung mittels RSA-Keys. Dazu werden drei (Windows)Programme benötigt: PuTTY, Pageant und PuTTYgen (Download unter http://www.chiark.greenend.org.uk/~sgtatham/putty/). Nach der Installation muss mit dem Programm Pegeant ein Schlüsselpaar erzeugt werden. Es muss die Option „SSH2 RSA“ gewählt werden.

cvs_3

Dann muss noch eine Passphrase eingegeben werden, die mehr als 8 Zeichen enthalten sollte! Anschliessend kann auf „Save private Key“ geklickt werden. Den Speicherort des Private Keys muss man sich merken. Den Text in der Textbox (public key) kann in die Zwischenablage kopiert werden. Daraus muss das File generiert werden, dass unter ~/.ssh/authorized_keys2 gespeichert wird (z.B. Erzeugen einer Textdatei, diese auf den Linux-Server transferieren, ins Verzeichnis ~/.ssh kopieren und in authorized_keys2 umbenennen). Dieses Verzeichnis und die Datei brauchen spezielle Zugriffsrechte. Diese mit den beiden Befehlen chmod 700 ~/.ssh und chmod 600 ~/.ssh/authorized_keys2 erteilen. Zum Schluss kann das Programm Pageant gestartet werden. Es nistet sich im Tray ein. Mit einem rechts-Klick darauf ins Menü „Add Key“ wechseln und danach den gerade erzeugten und abgespeicherten private key auswählen. Die Passphrase wird abgefragt. Wenn alles richtig konfiguriert wurde, sollten die CVS-Aktionen ohne Abfrage des Passworts erfolgen können. Der Private Key muss nach jedem Neustart neu eingelesen und die Passphrase eingegeben werden.

7. Literatur- und Internetverzeichnis

Last update: 11.08.2004