Zurück: Wettrennen Inhalt: CVS benutzen Weiter: Nachtrag

    

Stolperfallen



In diesem Kapitel sollen einige übliche Stolperfallen bei der Benutzung von CVS angesprochen werden, die dem Anfänger (aber auch dem Fortgeschrittenen) schwierigkeiten bereiten.

Umgang mit Bildern und anderen Binaries

Leider kann mit Bildern und anderen Binärdateien unter CVS nicht ganz so sorgloß umgegangen werden, wie man dies gerne hätte. Dies liegt daran, daß CVS einen Mechanismus anbietet, um in ausgecheckten Dateien automatisch zu vermerken, um welche Version der Datei es sich handelt, wer sie zuletzt verändert hat und vieles mehr. Dies wird realisiert, indem der Benutzer in der Datei bestimmte Schlüsselwörter verwendet, die dann von CVS beim auschecken entsprechend verändert werden. Diese Schlüsselwörter können in einer Binärdatei natürlich an beliebig blödsinnigen Stellen zufällig vorkommen. Man muß CVS daher im Falle einer Binärdatei mitteilen, daß es keine Schlüsselwörter ersetzen soll. Dies geschieht mit dem Schalter -kb, ansonsten ändert sich nichts.

kai@fREUNd:~/xpenguins/penguins$ cp walker.xpm neu.xpm
kai@fREUNd:~/xpenguins/penguins$ cvs add -kb neu.xpm
cvs add: scheduling file `neu.xpm' for addition
cvs add: use 'cvs commit' to add this file permanently
kai@fREUNd:~/xpenguins/penguins$ cvs ci -m "Ein Bild" neu.xpm
RCS file: /home/kai/cvsroot/xpenguins/penguins/neu.xpm,v
done
Checking in neu.xpm;
/home/kai/cvsroot/xpenguins/penguins/neu.xpm,v  <--  neu.xpm
initial revision: 1.1
done
kai@fREUNd:~/xpenguins/penguins$

Wie man vorgeht, wenn man den Schalter -kb beim checkin von Bildern vergißt (was leidlich oft passiert), ist in der CVS Online-Doku beschrieben.

Dateien verschieben

Eine weitere Schwierigkeit, die daraus resultiert, wie CVS Dateien eines Projektes intern abbildet, besteht in der simplen Operation eine Datei zu verschieben, bzw. umzubenennen. Dies ist mit CVS schlicht nicht möglich!

Es gibt jedoch zwei Wege, dieses Problem zu umgehen, die jedoch beide Vor- und Nachteile haben:

Da eine Versions-Kontrolle, die keine korrekten Versionen liefert, wenig Sinn macht, sollte die Umbenennung im Repository nur in Ausnahmefällen durchgeführt werden!

Verzeichnisse verschieben

Bei Verzeichnissen bestehen die selben Schwierigkeiten, die mit den selben Ausflüchten umgangen werden müssen. Der Unterschied besteht darin, daß der Aufwandsunterschied zwischen den beiden Methoden wesentlich größer wird. Wenn man direkt im Repository arbeitet, kann man einfach wie gewohnt das eine Verzeichnis verschieben, bzw. umbenennen. Wenn man den Repository über die Bruchstelle der Verschiebung/Umbenennung hinweg konsistent halten will, muß man alle Dateieen und Verzeichnisse, die sich in dem Verzeichniss befindent einzeln löschen und wieder einfügen! Man sollte bei CVS also bei Beginn eines Projektes genau überlegen, wie die Verzeichnisstruktur aussehen soll. Dies ist leider oft nicht möglich!

Weiterhin verwirrend in diesem Zusammenhang ist, daß sich Verzeichnisse unter CVS eigentlich gar nicht löschen lassen! Damit man trotzdem nicht alle ehemaligen Unterverzeichnisse in seiner Arbeitskopie herumfliegen hat, holt CVS Verzeichnisse bei einem update nicht automatisch. Man muß es mit up -d explizit dazu auffordern! Auf diese Weise werden gelöschte Verzeichnisse nicht bei jedem update neu erzeugt. Der Nachteil dabei ist, daß man schnell mal vergißt, -d mit anzugeben, wenn es eigentlich nötig wäre, nämlich wenn dem Repository ein neues Verzeichnis hinzugefüg wurde!



Zurück: Wettrennen Inhalt: CVS benutzen Weiter: Nachtrag