/~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...