Diese Dokumentation wurde zur Beschreibung der Serie 1.7.x von Apache™ Subversion® erstellt. Falls Sie eine unterschiedliche Version von Subversion einsetzen, sei Ihnen dringend angeraten, bei http://www.svnbook.com/ vorbeizuschauen und stattdessen die zu Ihrer Version von Subversion passende Version dieser Dokumentation heranzzuiehen.
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“.