/~paehler/

Zur Person


Projekte


Schulisches


Archiv

CVS-HOWTO

Einführung

CVS (=Concurrent Version System) ist ein Versionierungssystem, das es mehreren Benutzern gleichzeitig erlaubt, Code zu verändern und erweitern, und die dabei notwendig entstehenden Inkonsistenzen durch einen Update-Modify-Commit-Zyklus gering hält.

Die Urdaten liegen nämlich in einer mystischen Datenbank, genannt Repository und werden durch die einzelnen Programmierer heruntergeladen. Nach der Modifikation werden sie `committed', d.h. in aktueller Form auf der Datenbank eingespielt.

Eine typische CVS-Sitzung könnte z.B. so aussehen:

# wechseln in ein bereits mit CVS angelegtes Verzeichnis $ cd hlfb/recherche.new # updaten der Dateien; Einspielen von &Auml;nderungen anderer Programmierer $ cvs update # <hack>,<hack>,<test>,<test> # Einspielen der eigenen &Auml;nderungen $ cvs commit -m 'Neuer DB-Abfragemechanismus in blurb.java'

Die Information, wo sich das Repository befindet, wird in der Umgebungsvariablen $CVSROOT abgelegt. Sofern sich das Repository in einem gemeinsam (per NFS) genutzten Dateisystem befindet, ist nichts weiter zu tun, als z.B. die Zeilen

CVSROOT=/home/paehler/var/cvsrep export CVSROOT in eine Profil-Datei einzufügen. Alternativ kann man auch die CVS-Option -d <Repository-Pfad> verwenden.

Weitere CVS-Kommandos

Es folgen die wichtigsten weiteren Kommandos im Umgang mit CVS mit Beispielen. Die gemeinsame Form im Aufruf ist cvs [CVS-Optionen] <Kommando-Name> [Kommando-Optionen] [Datei-Name] Wichtig zu wissen ist, daß alle Kommandos bei fehlendem [Datei-Name] auf das aktuelle Verzeichnis und alle Unterverzeichnisse rekursiv angewandt werden. Will man dieses Verhalten nicht, so benutzt man die CVS-Option -l.

Exportieren von Dateien aus dem Repository

Zum erstmaligen Anlegen einer Kopie der Dateien aus dem Repository wird das checkout-Kommando benutzt. Das Argument gibt die Lage der Dateien im Repository und gleichzeitig den Pfad an, unter dem die Dateien relativ zum gerade aktuellen Verzeichnis angelegt werden # legt den Verzeichnisbaum aus $CVSROOT/hlfb/recherche.new in $PWD an $ cvs checkout hlfb/recherche.new

Hinzufügen/Löschen von Dateien im Repository

Das Hinzufügen bzw. Löschen von Dateien wird mit dem add- bzw. remove-Kommando erledigt. Für ein Verschieben gibt es kein Äquivalentes Kommando, die Datei muß also erst lokal verschoben werden, dann im Repository gelöscht werden und schließlich im neuen Verzeichnis neu angemeldet werden. Beispiel: # lokale Datei darf nicht mehr im lokalen Verzeichnis liegen, um entfernt # zu werden. cvs remove -f [Datei-Name] l&ouml;scht die Datei lokal gleich mit $ mv TODO.txt ../doc # loeschen der Datei im Repository $ cvs remove TODO.txt # Wechseln in in neues Verzeichnis, Hinzuf&uuml;gen der Datei ins Repository $ cd ../doc $ cvs add TODO.txt # &Auml;nderungen Wirksam machen $ cvs commit

Status/Änderungen abfragen

Will man lediglich wissen, ob und in welchem Zustand sich eine Datei im Repository befindet, so gibt man ein $ cvs status TODO.txt Um die Unterschiede zwischen der lokalen und der im Repository gelegenen Version aufzulisten, gibt man ein $ cvs diff TODO.txt

Weitere Informationen

gibts bei www.cyclic.com

Fehlt was?

Ich freue mich über Anregungen jeder Art.



Tim Paehler...