Kapitel 5. Weiterführende Funktionen

Zum Tag, Zweig oder Datum aktualisieren

Zweige eines Moduls sind parallele Versionen des Moduls. Eine gutes Beispiel für die Verwendung ist das Release eines Software-Projekts. Nach einem Haupt-Release gibt es Fehler, die korrigiert werden müssen, aber die Entwickler wollen auch neue Features hinzufügen. Es ist schwer, beides gleichzeitig zu tun, da neue Features normalerweise neue Fehler mit sich bringen, was es schwer machen, die alten Fehler zu finden. Um dieses Problem zu umgehen, können Sie in CVS eine parallele Version erstellen, die wir hier stabiler Release-Zweig nennen, in den Sie nur Fehlerbereinigungen einpflegen. Der Hauptzweig (HEAD) bleibt offen für das Hinzufügen neuer Features.

Mit Tags markieren Sie Versionen eines Projekts. CVS markiert eine Version jeder Datei mit dem Tag, sodass Sie beim Auslesen eines Tags immer die gleichen Versionen der Dateien bekommen. Somit ist der Unterschied zum Zweig, dass ein Tag nicht dynamisch ist: Sie können in einem Tag nicht entwickeln. Tags sind sinnvoll um Releases, große Änderungen im Code usw. zu markieren.

Wenn Sie in einem Software-Projekt entwickeln, oder dessen Entwicklung verfolgen, arbeiten Sie nicht unbedingt die ganze Zeit im Hauptzweig. Nach einem Release könnten Sie in dem Release-Zweig bleiben wollen, um ein stabiles System zu haben, Fehler zu korrigieren, die Quellen zu übersetzen usw. Um das zu tun, müssen Sie auf den Release-Zweig aktualisieren. Alle Ihre Dateien werden auf die letzte Version des Release-Zweiges aktualisiert. Nach der Aktualisierung werden auch alle Ihre Commits in den Release-Zweig eingespielt.

Auch wenn Sie einen Fehler nachvollziehen möchten, der in einer älteren Version gemeldet wurde, können Sie mit CVS die Version des Releases beziehen, indem Sie auf dieses Tag aktualisieren. Zudem können Sie auf eine beliebige ältere Version aktualisieren, indem Sie das Datum angeben. Das ist nützlich, wenn es zwischen zwei Releases einen Fehler gab, von dem Sie ungefähr wissen, wann er auftrat. Wenn Sie auf ein Datum oder ein Tag aktualisieren, werden Ihre Dateien sein wie die an dem bestimmten Datum oder wie die Versionen, die mit dem Tag markiert sind.

Warnung

Bevor Sie auf einen anderen Zweig oder ein Tag aktualisieren, versichern Sie sich, dass Sie alle Änderungen, die für den aktuellen Zweig gedacht sind, eingespielt haben. Sollten die Änderungen noch nicht bereit zum Einspielen sein, aber auch nicht verworfen werden, aktualisieren Sie nicht auf den neuen Zweig, da Sie sonst Ihre Änderungen verlieren. Alternativ können Sie in einen anderen Ordner auschecken und parallel an zwei Versionen arbeiten.

Abbildung 5.1. Ein Bildschirmfoto des Dialogs CVS aktualisieren

Ein Bildschirmfoto des Dialogs „CVS aktualisieren“

Auf Zweig aktualisieren

Wählen Sie dies, um auf einen Zweig zu aktualisieren. Geben Sie den Namen des Zweigs in das Kombinationsfeld ein (oder drücken Sie den Knopf Liste holen um eine Liste der Zweige vom CVS-Server zu beziehen, und wählen Sie den gewünschten Zweig aus dem Auswahlfeld).

Auf Tag aktualisieren

Wählen Sie dies, um auf ein Tag zu aktualisieren. Geben Sie den Namen des Tags in das Kombinationsfeld ein (oder drücken Sie den Knopf Liste holen um eine Liste der Tags vom CVS-Server zu beziehen, und wählen Sie das gewünschte Tag aus dem Auswahlfeld).

Auf Datum aktualisieren

Wählen Sie dies, um auf ein Datum zu aktualisieren. In dem zugehörigen Eingabefeld können Sie ein Datum in verschiedenen Formaten eingeben. Ein mögliches Format ist yyyy-mm-dd, wobei yyyy das Jahr ist, mm der Monat (als Zahlenwert) und dd der Tag. Alternativen sind einige englische Begriffe wie yesterday oder 2 weeks ago.

Anmerkung

Beide oben erwähnten Möglichkeiten bewirken, dass ein Tag oder Datum den Status sticky erhält, d. h. Sie können keine weiteren Änderungen für diese Dateien einspielen (es sei denn, es handelt sich um ein Verzweigungs-Tag). Um wieder zum Hauptzweig zurückzukehren, verwenden Sie den Menüeintrag ErweitertAuf HEAD aktualisieren.

Der Befehl zum Aktualisieren eines Zweiges oder eines Tags lautet:

cvs update -r tag

Der Befehl, der zur Aktualisierung auf ein Datum abgesetzt wird, lautet:

cvs update -D Datum

Der Befehl, der zur Aktualisierung auf den Hauptzweig (HEAD) abgesetzt wird, lautet:

cvs update -A