Gliederung
Concurrent Versions SystemCVS in der Technischen Informatik
Philipp A. Hartmann
Institut für Informatik IITechnische Informatik
Rheinische Friedrich-Wilhelms-Universität [email protected]
21. Oktober 2005
1/26 Einführung in CVS Philipp A. Hartmann
Gliederung
Gliederung
1 Einleitung
2 Regeln und FallstrickeKonventionenVermeidbare Fehler
3 EinrichtungEinrichtung von SSHKonfiguration von WinCVS
2/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung
Was ist CVS?
CVS ist ein Versionskontrollsystem
Verwaltung und Archivierung der Entwicklungsgeschichte vonSoftware-ProjektenRückverfolgung aller EntwicklungsschritteZugriff auf jede gesicherte Revision aller einem Projektgehörigen DateienUnterstützung von parallelem Arbeiten eines Teams an einemProjekt (und sogar derselben Datei (→ “concurrent”)
CVS ist “Allgemeinbildung”
(Noch) weit verbreitet bei der SoftwareentwicklungKonzepte anderer Versionkontrollsysteme meist ähnlich
3/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung
Konzept von CVS (I)
Das Repository
Projekte unter der Kontrolle von CVS werden in einemzentralen Repository gesichert.Sein Ort wird oft in der Umgebungsvariable CVSROOTvorgehalten. Das Repository der Abteilung ist erreichbar unter:
CVSROOT=[username]@ikarus:/var/cvs
Zugriff auf CVS-Server nur über SSH möglich(CVS unterstützt selbst nur Klartext-Passwörter)Verzeichnis CVSROOT/ im Repository enthält administrativeDateien. User haben nur Lese-Zugriff.Projekte liegen typischerweise in eigenen Verzeichnissen oderUnterordnern im Repository
4/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung
Konzept von CVS (II)
Arbeiten an Projekten
Benutzer arbeiten nie direkt auf den Dateien im Repository,sondern auf lokalen KopienEine (sehr) kurze Einführung in die Benutzung gibt es auf derTI-Homepage(Studenten-Infos → Versionskontrolle → CVS-Handout)Das offizielle (und ausführliche) Manual findet sich unterhttp://ximbiot.com/cvs/wiki/
Eine Einarbeitung in die Verwendung von CVS ist für jedenunerlässlich!
5/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung Konventionen Vermeidbare Fehler
Gliederung
1 Einleitung
2 Regeln und FallstrickeKonventionenVermeidbare Fehler
3 EinrichtungEinrichtung von SSHKonfiguration von WinCVS
6/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung Konventionen Vermeidbare Fehler
Einzuhaltende Regeln (I)
Einchecken von Änderungen
Jeder commit muss sorgfältig geprüft sein – der Source-Codesollte stets kompilierbar sein.Jeder commit sollte nach Möglichkeit nur eine logischeÄnderung an dem Projekt umfassen.Vor dem commit ist die lokale Kopie mittels cvs status odercvs update mit der Serverversion zu vergleichen.Neue Dateien werden korrekt bezüglich des Dateiformatseingecheckt, Binärdateien also immer auch als solche!Keine automatisch generierten Dateien einchecken!Jeder commit muss eine aussagekräftige Log-Nachrichtenthalten (in der Sprache der Kommentare).
7/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung Konventionen Vermeidbare Fehler
Einzuhaltende Regeln (II)
Verzeichnisse
Die verwendete Verzeichnisstruktur innerhalb desProjektverzeichnisses wird immer gemeinsam festgelegt.Neue Verzeichnisse werden erst nach Absprache angelegt.
Tags und Branches
Meilensteine werden mit einem aussagekräftigen Tag versehen.Vorher wird noch einmal sichergestellt, dass der Source-Codein einem guten Zustand ist.Tags und Branches sollten stets abgesprochen werden.Insbesondere das Entfernen von Tags vorher kommunizieren!
8/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung Konventionen Vermeidbare Fehler
Einzuhaltende Regeln (III)
Header & Keywords
Es sollte ein einheitlicher Header für die Source-Dateienvereinbart werden. Dies beinhaltet insbesondere dieVerwendung von CVS-Keywords
$Log:$-Tags sind unbedingt zu vermeiden!
9/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung Konventionen Vermeidbare Fehler
Häufige Probleme (I)
Zeilenumbruch
CVS (unter Windows) konvertiert CR/LF-Umbrüche vor demEinchecken, bzw. nach dem Auschecken entsprechend inLF-UmbrücheRegel: CVS stets unter dem OS benutzen, unter dem dielokale Kopie auch manipuliert wird.Daher niemals Windows-Dateien (ohne vorige Konversion) vonHand unter Un*x-Betriebssystemen einchecken!
10/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung Konventionen Vermeidbare Fehler
Häufige Probleme (II)
Verzeichnisse
CVS verwaltet nur Dateien, keine VerzeichnisseVerzeichnisse werden erst im Repository angelegt und (je nachOption) auch nur ausgecheckt, wenn sie nicht leer sind.Dies führt allerdings auch zu Problemen bei derReorganisation der Verzeichnisstruktur (solange jemand dasProjekt in einer lokalen Kopie verwendet).Also: Sorgfalt ist geboten!
11/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung Konventionen Vermeidbare Fehler
Häufige Probleme (III)
Sticky Tags
Wird eine alte Revision einer Datei ausgecheckt, führt einunachtsames Einchecken einer Veränderung dieser Datei zumAnlegen eines neuen Entwicklungszweigs.Umgehen dieses Verhaltens durch
cvs update -A meinedatei.cpp
(Entfernen des “sticky tags”) oder bereits vorherigesAuschecken über stdout (siehe Dokumentation)
12/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Gliederung
1 Einleitung
2 Regeln und FallstrickeKonventionenVermeidbare Fehler
3 EinrichtungEinrichtung von SSHKonfiguration von WinCVS
13/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Secure SHell
Programm zum verschlüsselten Fernzugriff
Heutzutage Standard unter Un*x-Betriebssystemen(und somit in der Regel bereits installiert)Windows-Client: z.B. PuTTY→ Google → “putty download” → “Auf gut Glück!”Dient hier zur Authentifizierung und sicherenDatenübertragung
Einrichten einer Key-basierten Authentifizierung
Zur Verwendung (insbesondere graphischer) CVS-Programmeempfiehlt sich Einrichtung eines Public/Private-Keys.Schrittweise Anleitung (für PuTTY unter Windows) auf dennächsten Folien.Einrichtung unter Un*x/Linux analog (siehe ssh(1))
14/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 1: Erzeugen eines Schlüsselpaares
PuTTYgen
Mit Hilfe des Tools PuTTYgen kann ein Schlüsselpaar erzeugtwerden.Als Typ sollte SSH-2 DSA ausgewählt werden.Eine sinnvolle Länge für den Schlüssel ist 2048 Bit.
15/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 1: Erzeugen eines Schlüsselpaares
15/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 1: Erzeugen eines Schlüsselpaares
15/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 1: Erzeugen eines Schlüsselpaares
15/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 2: Speichern des Schlüsselpaares
PuTTYgen
Speichern des privaten Schlüssels an einem “sicheren Ort”,beispielsweise im Unix-Home (falls unter Windows gemountet)im Verzeichnis .ssh
Zusätzlich sollte ein Passwort angegeben werden!In diesem Beispiel verwenden wir den Namen id_dsa.ppk.
16/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 2: Speichern des Schlüsselpaares
16/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 2: Speichern des Schlüsselpaares
16/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 3: Exportieren des Schlüssels
PuTTYgen
Zur Verwendung unter Un*x kann der Schlüssel optionalexportiert werden.Dazu unter Conversions den Punkt Export OpenSSH-Keyauswählen.Als Dateinamen wählen wir id_dsa (ohne Endung), wiederumim Un*x-Home im Verzeichnis .ssh/
Dieser Key wird sodann als Standard-Key unter Un*xverwendet.
17/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 3: Exportieren des Schlüssels
17/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 3: Exportieren des Schlüssels
17/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 4: Der öffentliche Schlüssel
Bereitstellen des öffentlichen Schlüssels
Zur Authentifizierung mit Hilfe eines Schlüsselpaares muss deröffentliche Schlüssel als “authorisiert” gelten.Dazu wird dieser in die Datei ∼/.ssh/authorized_keyshinzugefügt.
Vorbereitung
Kopieren des öffentlichen Schlüssels in ZwischenablageEinloggen auf ikarus per SSH (und Passwort)Falls Frage nach Host-Key kommt, sollte man diesenakzeptieren.
18/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 4: Der öffentliche Schlüssel
18/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 4: Der öffentliche Schlüssel
18/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 4: Der öffentliche Schlüssel
Befehlsfolge
$ mkdir -p .ssh
$ touch .ssh/authorized_keys
$ chmod go-rw .ssh/authorized_keys
$ cat >> .ssh/authorized_keys
Nach Absetzen des cat-Befehls, Schlüssel in das Terminalfensterkopieren und mit <ENTER> und dann <CTRL>-D (end-of-file)abschließen.
18/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 4: Der öffentliche Schlüssel
18/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 5: Ein erster Test
Test des Schlüssels
Wir verwenden das Kommadozeilen-Tool plink zum Test derAuthentifizierung mit Hilfe des neuen Schlüsselpaars.
19/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 6: Weg mit dem Passwort
Der Key-Agent Pageant
Um nicht immer ein Passwort eingeben zu müssen, bietet sichdie Verwendung eines Key-Agenten an.Der zu PuTTY gehörende Agent heißt Pageant und erscheintnach dem Start als Symbol im Systray.Hier kann man den erzeugten Schlüssel dann hinzufügen:
20/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Schritt 7: Ein zweiter Test
Test des Key-Agenten
Nach Eingabe des Passworts für denSchlüssel können wir dieAuthentifizierung erneut testen.
21/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Und weiter?
SSH somit vollständig vorbereitet
Nun können wir (nach Starten des Agenten) ohne zusätzlichePasswortabfrage per SSH auf den CVS-Server (und vieleandere Un*x-Rechner, z.B. im CIP-Pool) zugreifen.
Zugriff von außerhalb der Informatik
Für einen Zugriff per SSH auf ikarus von außerhalb desNetzwerks der Informatik muss zusätzlich das VPN benutztwerden.Die Konfiguration eines entsprechenden Zugangs ist auf denSupport-Seiten erklärt und zu finden unter:http://web.cs.uni-bonn.de/DV/dienste/vpn/vpn.html
22/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
WinCVS - eine graphische Oberfläche
WinCVS
WinCVS ist ein graphischer CVS-Client.Open-Source, erhältlich unter http://www.wincvs.org.Linux und Mac-Versionen ebenfalls verfügbar.Sollte auf den Abteilungsrechnern vorhanden sein, kann aberauch ohne Installation gestartet werden.
Einrichtung
Im Folgenden: Einrichten von WinCVS zur Verwendung desAbteilungsservers.Verwendung von WinCVS bitte der Hilfe, bzw.Online-Dokumentation entnehmen.Zum Spielen/Ausprobieren existiert ein Projekt junk aufikarus.
23/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Konfiguration des CVSROOT
Admin → Preferences
Angaben zum CVSROOT im Einstellungsdialog:
24/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Konfiguration des CVSROOT
Admin → Preferences → SSH settings
Angaben zur SSH-Konfiguration:
24/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Beispielcheckout
25/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Beispielcheckout
25/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
Beispielcheckout
25/26 Einführung in CVS Philipp A. Hartmann
Einleitung Regeln und Fallstricke Einrichtung SSH WinCVS
TAF
That’s all, folks!
26/26 Einführung in CVS Philipp A. Hartmann
Top Related