Das CVS-System wurde in unserem Projekt für die Verwaltung der allgemein zugänglichen Quellen gewählt, da es bei vergleichsweise geringem Nutzungsaufwand alle nötige Funktionalität beinhaltet und sich in anderen Projekten an unserem Institut bereits bewährt hat.
Der Kern des CVS-Systems ist das so genannte Repository, das alle gemeinsam zu nutzenden Dateien zentral verwaltet und die Zugriffe auf diese kapselt.
Zur Bearbeitung von Dateien müssen diese daher vom Anwender erst als lokale Kopien angelegt werden. Im Anschluss an die Bearbeitung müssen die Dateien natürlich auch wieder im Repository aktualisiert werden.
Für diese Zwecke steht eine Reihe von Befehlen zur Verfügung, deren Bedeutung jedem Nutzer geläufig sein sollte.
Mit diesem Befehl werden lokale Kopien aller zentral verwalteten Dateien
des Moduls modulname angelegt. In unserem Projekt wurde der modulname
auf
- XCTL_32 für 32-Bit und auf
- XC010701 für 16-Bit
festgelegt. Für die lokalen Kopien sollte man sich ein Arbeitsverzeichnis
im eigenen Home-Verzeichnis anlegen.
Da CVS die Quellen zentral verwaltet, muss vor einem checkout dieser zentrale Speicherort über die Variable CVSROOT bekannt gemacht werden. Bei einer C-Shell geschieht das in unserem Projekt über den Befehl setenv CVSROOT /vol/baal-vol3/projekt98/quellen.
Dieser Befehl ist zum Einspielen von lokalen Änderungen vorgesehen. Wenn die Log-Mitteilung länger sein soll, kann auch auf den Parameter verzichtet werden; es wird dann automatisch der vi gestartet.
Mit diesem Befehl werden die lokalen Kopien mit den zentral gehaltenen Dateien synchronisiert. Dabei gibt es u.U. folgende Ausschriften:
Wenn zahlreiche Änderungen im Repository erfolgt sind, kann es durchaus sein, dass die Ausschriften nicht mehr komplett auf das Terminal passen. Daher sollte der Update-Befehl folgendermaßen mit dem More-Befehl kombiniert werden: cvs update ¦ more.
Mittels "cvs add" können neu erstellte Dateien in die CVS-Verwaltung aufgenommen werden.
Dieser Befehl entfernt Dateien aus der CVS-Verwaltung. Die physische Datei muss vor der Ausführung dieses Befehls gelöscht sein
Das Kernproblem unserer Verwendung von CVS besteht in der parallelen Nutzung von Windows (zur Entwicklung) und UNIX (zur Archivierung). Daher muss jeder, der eigene Entwicklungen vornimmt, folgendes beachten:
Konflikte sind Quelltextstellen, die von mehreren Entwicklern (aus Sicht des CVS-Systems) "gleichzeitig" bearbeitet wurden. Bei einem "cvs update" werden Konflikte durch CVS in der betroffenen Datei folgendermaßen markiert:
<<<<<<< DATEINAME Neuer Text. ======= Bisheriger Text im CVS. >>>>>>> AKTUELLE CVS-REVISIONSNUMMER
Um den Konflikt zu bereinigen, muss entschieden werden, in welcher Reihenfolge die beiden Dateiteile zu stehen haben. Nachdem jene entsprechend sortiert sind, müssen die Markierungen (spitze Klammern, Gleichheitszeichen und der dazu gehörige Text) entfernt werden. Danach ist der Konflikt bereinigt.