Dieser Text befindet sich gegenwärtig in Bearbeitung, unterliegt ständigen Änderungen und kann dadurch nicht stets akkurat irgendeine freigegebene Version der Software Apache™ Subversion® beschreiben. Das Speichern dieser Seite als Lesezeichen oder andere auf diese Seite zu verweisen, ist keine so gute Idee. Besuchen Sie http://www.svnbook.com/, um stabile Versionen dieses Buchs zu erhalten.
In CVS werden Revisionsnummern pro Datei vergeben. Das liegt daran, dass CVS seine Daten in RCS-Dateien speichert; für jede Datei gibt es eine entsprechende RCS-Datei im Projektarchiv, und die Struktur des Projektarchivs entspricht grob der Struktur Ihres Projektbaums.
In Subversion sieht das Projektarchiv aus wie ein einzelnes Dateisystem. Jede Übergabe verursacht einen völlig neuen Dateibaum; im Wesentlichen ist das Projektarchiv eine Liste aus Bäumen. Jeder dieser Bäume wird mit einer einzelnen Revisionsnummer gekennzeichnet. Wenn jemand von „Revision 54“ redet, ist damit ein bestimmter Baum gemeint (und indirekt, wie das Dateisystem nach der 54. Übergabe aussah).
Technisch ist es nicht zulässig, von „Revision 5 von
foo.c
“ zu sprechen. Stattdessen
sollte man sagen, „foo.c
wie es in
Revision 5 aussieht“. Seien Sie ebenfalls sorgfältig,
wenn Sie Annahmen über die Entwicklung einer Datei machen. In
CVS sind die Revisionen 5 und 6 von foo.c
immer unterschiedlich. In Subversion ist es sehr wahrscheinlich,
dass foo.c
sich zwischen den Revisionen 5
und 6 nicht geändert hat.
Auf ähnliche Weise ist in CVS ein Tag oder ein Zweig eine
Anmerkung zu der Datei oder zu der Versionsinformation dieser
individuellen Datei, wohingegen ein Tag oder ein Zweig in
Subversion eine Kopie des gesamten Baums ist (konventionell in
die Verzeichnisse branches/
oder
tags/
, die auf der obersten Ebene des
Projektarchivs neben trunk/
liegen). Im
Projektarchiv in seiner Gesamtheit können viele Versionen einer
Datei sichtbar sein: die letzte Version jedes Zweigs, jede mit
einem Tag versehene Version und natürlich die letzte Version auf
dem Stamm. Um den Ausdruck also noch weiter zu präzisieren,
würde man sagen „foo.c
wie es in
branches/REL1
in Revision
5“ aussieht.
Für weitere Einzelheiten zu diesem Thema, siehe „Revisionen“.