Seiten-Inhalt

CVS - Eine kurze Enleitung und Hilfe

Wie ich dazu kam...

Ich entwickle seit einiger Zeit Perl-Programme (-Scripte). Es handelt sich bei diesen Perl-Scripten um einfache Textdateien, die von einem Interpreter ausgeführt werden. Nun entwickle ich ab und zu auch Scripte zusammen mit einem Bekannten. Es kommt auch vor, daß wir beide unabhängig voneinander an einem Script Änderungen vornehmen - auch am gleichen Script. Bisher haben wir uns dann gegenseitig die jeweils aktuellste Version zugemailt und einer von uns mußte die Änderungen von Hand in sein Script eintragen. Auf die Dauer etwas aufwändig... so kamen wir zu diesem Tool: CVS.

Für eine neues Programm richtet man einfach ein neues Projekt ein und fügt die erforderliche(n) Datei(en) ein. Will man nun an einem Programm (bzw. irgendeiner Textdatei) arbeiten, so holt man sich aus dem Repository (Archiv, in dem CVS die Daten speichert) die neueste Version, bearbeitet diese und gleicht nach getaner Arbeit seine Änderungen mit dem Repository einfach wieder ab. Wurden "durch einen Computer erkennbare Änderungen" durchgeführt (s.u.), so trägt CVS einfach diese ins Archiv ein. Bei Konflikten erscheint eine Warnmeldung und der Source-Code wird an den Stellen von CVS-Warnmeldungen markiert, wo das Programm nicht mit einfachen Vergleichen feststellen konnte. Haben gleichzeitig zwei Programmierer an einer Datei gearbeitet, so ist es in der Regel für CVS kein Problem, die beiden Versionen beim Einfügen abzugleichen, wenn nicht an gleichen Stellen im Programm gearbeitet wurde.

Ein weiterer Vorteil dieses Systems ist, daß man auch ältere Versionen von Dateien jederzeit wieder abrufen (auschecken) kann. So kann im Nachhinein die Entwicklung eines Programmes beobachtet, sowie Fehler in alten Versionen berichtigt werden, die durch das System auch in Folgeversionen integriert werden können.

Man kann übrigens auch über eine Netzwerkverbindung (z.B. Internet) Daten mit entfernten Rechnern abgleichen. So kann jeder Anwender jederzeit die aktuelle Version "aus dem Netz" ziehen und nachher wieder zentral dort hinterlegen. Mehr dazu weiter unten im Kapitel Installation/Konfiguration

(HTML-Seiten sind genauso Text-Dateien. Diese gesamte Homepage wird auch durch dieses Tool verwaltet. So kann ich die Entwicklung dieser Seiten auch in 30 Jahren noch nachvollziehen.)

Was ist CVS?

 CVS ist ein Versionsverwaltungs-System, mit dessen Hilfe man mit mehreren Personen gleichzeitig an einem Projekt arbeiten kann. Beim Daten-Abgleich werden die verschiedenen Versionen automatisch miteinander abgeglichen - treten dabei Probleme auf, so gibt es eine Warnmeldung und ggf. muß man selber von Hand den Versions-Konflikt ausgleichen.

Kurzanleitung

Es gibt in Internet bereits sehr viele gute Anleitungen zu CVS - diesen will ich )nicht( nacheifern...

Hier also nur ein paar Arbeitsabläufe, die bei der Arbeit mit CVS häufig anzutreffen sind:

Grundsätzlicher Aufbau einer CVS-Anweisung

cvs [globale_optionen] befehl [optionen] [projektname]
[globale_optionen]
-d#160; Verzeichnis
spezifiziert den absoluten Pfad zum CVS_ROOT-Verzeichnis - dieser kann auch mit der Umgebungsvariablen CVSROOT festgelegt werden
   
befehl
checkout
Erstellt eine Arbeitsversion des angegebenen Projekts (mit Parameter -d kann man hier das Arbeitsverzeichnis angeben)
update Aktualisiert die Arbeitsversion mit der im Repository
commit Trägt die eigenen Änderungen in das Repository ein
diff
Zeigt die Unterschiede an, zwischen der aktuellen Arbeitsversion und der im Repository
log
Zeigt die bisherigen Änderungen an, die an dem Projekt vorgenommen wurden. Die Angabe eines im Repository enthaltenen Dateinamens beschränkt den Bericht auf diese Datei.
history  
[optionen] (s. Erläuterungen zu den jeweiligen Befehlen (oben und unten))
[projektname] Spezifiziert den Namen des Projekts. Befindet man sich bereits im Arbeitsverzeichnis, so ist dieser Parameter nicht norwändig
 

Anlegen eines neuen Projekts

cvs import <prj> <name> <release>
   
   
 

Auschecken einer Arbeitsversion

cvs checkout <prj>
 
erstellt ein Unterverzeichnis im aktuellen Verzeichnis und fügt dort die im Projekt enthaltenen Dateien ein.Dies ist dann die lokale Arbeitsversion, in der die Änderungen vorgenommen werden können.
   
 

Aktualisieren der Arbeitsversion / Änderungen abgleichen

cvs update <prj>
 
Gleicht die eigene lokale Datei (Arbeitsversion) mit der im Repository gespeicherten Version ab. Hierbei wird "nur" die lokale Version aktualisiert - es werden also ggf. die Änderungen anderer 'Mitarbeiter' eingespielt. Sollte es Konflike geben, so wird dies angezeigt und man kann bevor man die Version ins repository einspielt, die Fehler beheben. Man sollte erst seine Verison einchecken, wenn keine Konflikte beim Update mehr auftreten! Vor jedem Einchecken ins Repository sollte man hiermit überprüfen, ob es möglich ist, eine neuere Version einzuchecken.
   
 

Bestätigung der eigenen Änderungen / Eintrgen

cvs commit <prj>
  Spielt die eigenen Änderungen in das Repository ein. Vorher sollte man mit 'cvs update' überprüfen, ob ein konfliktfreies Einspielen der eigenen Version möglich ist.
  Mit der Option '-m msg' kann man direkt einen Kommentar zu seinen Änderungen angeben. Sonst wird ein (voreingestellter) Editor geöffnet, in dem man die Bemerkungen eingeben kann.

 

Installation / Konfiguration

CVS gibt es auch für Windows...

 

Verwendung eines anderen Ports für SSH

Wenn man Daten mit "fernen" Rechner abgleichen will, so kann man - wenn man auf der sichereren Seite sein will - dies realisieren, indem man die Verbindung zu dem anderen Rechner per SSH aufbaut. In Privat-Rechner-Systemen bietet sich ggf. auch noch an, den SSH-Server über einen anderen Port laufen zu lassen. Um nun auch dies in Verbindung mit CVS zu machen, kann man in die ~/.ssh/config-Datei folgende Zeile eintragen:

Host mein-rechner.dyndns.com
  Port 1000

 Nun benutzt SSH für jeden SSH-Verbindungsaufbau zu dem Recher mein-rechner.dyndns.com den Port 1000.

Links

weitere Hilfen im Internetz

 

Quellen für Software

  • CVS
  • CYGWIN

 

 


Drucken
letzte Änderung: 18.Sep 2005

rechte Spalte

Felicitas-Fernsehservice

Ein E-Mail-Dienst, der Ihnen täglich eine Auswahl des TV-Programms zusendet, das anhand einer individuellen Suchwortliste erstellt wurde.
Klicken Sie hier.