Zurück: Stolperfallen Inhalt: CVS benutzen Weiter: Weiterführende Dokumentation
![]() |
Nachtrag |
Ein wesentlicher Punkt wurden in dem ursrprünglich geplanten Vortragsverlauf nicht berücksichtigt: die Erzeugung von Versionsnummerierungen, die der Sicht des Anwenders auf die einzelnen Versionen im Repository entsprechen. Dies soll hier nachgetragen werden.
Die Versionsnummern, die in dem Abschnitt
Weiterlaufen benutzt wurden, um die
Unterschiede zwischen bestimmten, mit hilfe des Kommandos log
ausgesuchten Versionen anzuzeigen, stellen die interne Sicht von CVS
auf die im Repository vorhandenen Versionen dar. Aufgrund der Arbeitsweise
von CVS sind diese Versionsnummern nicht dafür geeignet, eine
gesamte Arbeitskopie auf einen bestimmten Stand zurückzuversetzen! Dies liegt
an der Dateibasierten Arbeitsweise von CVS. CVS speichert die Versionen der
einzelnen Dateien eines Projektes auch intern in einzelnen Dateien ab. Dies
hat zur Folge, daß CVS die Versionsnummern für jede Datei eines Projektes
einzeln zählt. Dateien, die besonders oft verändert und eingecheckt wurden
haben daher zu einem bestimmten Zeitpunkt (z.B. bei einem Release) eine
wesentlich höhere Versionsnummer als Dateien, die kaum verändert wurden, oder
erst zu einem späteren Zeitpunkt erzeugt wurden. Wenn man also später seine
Arbeitskopie auf den Stand dieses Releases zurückversetzen will, so kann
man das nicht tun, in dem man mit -r
die Versionsnummer
angibt, die eine der Dateien zu dem Zeitpunkt des Releases hatte.
Um dieses Ziel zu erreichen, muß man dem Projekt zu diesem Zeitpunkt eine
symbolische Versionsbezeichnung geben. Symbolisch, weil diese
Versionsbezeichnung nicht unbedingt eine Zahlenfolge ist. Dies geschieht mit
dem Kommando tag
. Die Symbolische Versionsbezeichnung muß mit
einem Buchstaben anfangen und darf außer Buchstaben und Zahlen nur einen
Unter- oder Bindestrich enthalten.
kai@fREUNd:~/xpenguins$ cvs tag Version-1_2kai01 cvs tag: Tagging . T AUTHORS T COPYING T ChangeLog T INSTALL T LIESMICH T Makefile T README T toon.c T toon.h T vroot.h T xpenguins T xpenguins.1 T xpenguins.c cvs tag: Tagging penguins T penguins/bomber.xpm T penguins/climber.xpm T penguins/def.h T penguins/explosion.xpm T penguins/faller.xpm T penguins/floater.xpm T penguins/neu.xpm T penguins/tumbler.xpm T penguins/walker.xpm kai@fREUNd:~/xpenguins$
Dieses Kommando ordnet den Dateiversionen, die sich zur Zeit in der
Arbeitskopie befinden die symbolische Version Version-1_2kai01
zu. Später können also genau die Dateiversionen, die sich zum Zeitpunkt
des tag
-Aufrufes in der Arbeitskopie befanden mit
cvs up -r Version-1_2kai01
wieder aus dem Repository in die
Arbeitskopie geholt werden.
Zwei Bilder aus dem CVS-Buch (siehe Quellen)
veranschaulichen den Nutzen von tag
File A File B File C File D File E ------ ------ ------ ------ ------ 1.1 1.1 1.1 1.1 1.1 ----1.2-. 1.2 1.2 1.2 1.2 1.3 | 1.3 1.3 1.3 1.3 \ 1.4 .-1.4-. 1.4 1.4 \ 1.5 / 1.5 \ 1.5 1.5 \ 1.6 / 1.6 | 1.6 1.6 \ 1.7 / | 1.7 1.7 \ 1.8 / | 1.8 .-1.8-------> \ 1.9 / | 1.9 / 1.9 `1.10' | 1.10 / 1.10 1.11 | 1.11 | | 1.12 | | 1.13 | \ 1.14 | \ 1.15 / \ 1.16 / `-1.17-' [Figure 2.1: How a tag might stand in relation to files's revisions.]
Die geschlängelte Linie repräsentiert dabei den Stand der Arbeitskopie
zum Zeitpunkt des tag
-Aufrufes (nicht alle Dateien
befanden sich auf dem aktuellsten Stand).
File A File B File C File D File E ------ ------ ------ ------ ------ 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.1 1.8 1.2 1.9 1.3 1.10 1.1 1.4 1.11 1.2 1.5 1.12 1.3 1.6 1.13 1.4 1.7 1.1 1.14 1.5 1.8 1.2 1.15 1.6 1.1 1.9 1.3 1.16 1.7 ----1.2---------1.10--------1.4---------1.17--------1.8-------> 1.3 1.11 1.5 1.17 1.9 1.6 1.17 1.10 [Figure 2.2: The same tag as a "straight sight" through the revision history.]
Bei der Benutzung des Kommandos tag
sind zwei Besonderheiten
zu beachten:
tag
-Kommando interessiert nur, welche Dateiversionen in
der Arbeitskopie liegen. Da das Kommando direkt auf dem Repository arbeitet
bleiben eventuell in der Arbeitskopie vorgenommene Änderungen, die noch
nicht eingecheckt wurden, unberücksichtigt!
Die Tags können später eben so wie die Versionsnummern benutzt werden.
Eine weitere Möglichkeit, die gesamte Arbeitskopie in einen vergangenen Zustand zurückzuversetzen ist die Angabe eines Datums. Was bei der Angabe des Datums zu beachten ist, um wirklich die Versionen zu erhalten, die man haben möchte ist im CVS-Buch erklärt.
Dort ist auch erklärt, wie man ein Tag zu dem Abzweig für einen Branch machen kann.
Zurück: Stolperfallen Inhalt: CVS benutzen Weiter: Weiterführende Dokumentation