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.
Im Großen und Ganzen geht Subversion mit Binärdateien eleganter um als CVS. Da CVS RCS verwendet, kann es nur aufeinanderfolgende vollständige Kopien einer sich ändernden Binärdatei abspeichern. Subversion jedoch stellt Unterschiede zwischen Dateien mithilfe eines binären Differenzalgorithmus dar. Das bedeutet, dass alle Dateien als (komprimierte) Differenzen im Projektarchiv abgespeichert werden.
Benutzer von CVS müssen binäre Dateien mit der Option
-kb
kennzeichnen, um zu verhindern, dass die
Daten verfälscht werden (aufgrund von Schlüsselwortersetzung und
der Umwandlung von Zeilenenden). Manchmal vergessen sie
es.
Subversion schlägt den paranoideren Weg ein. Erstens macht es keinerlei Schlüsselwortersetzung oder Zeilenendenumwandlung, es sei denn, Sie fordern es ausdrücklich dazu auf (Einzelheiten unter „Ersetzung von Schlüsselworten“ und „Zeichenfolgen zur Zeilenende-Kennzeichnung“). Standardmäßig behandelt Subversion alle Dateiinhalte als Byteketten, und Dateien werden stets ohne Umwandlung im Projektarchiv gespeichert.
Zweitens besitzt Subversion eine interne Auffassung, ob eine Datei „textuellen“ oder „binären“ Inhalt hat, doch besteht diese Auffassung nur in der Arbeitskopie. Während eines svn update unternimmt Subversion für lokal veränderte Textdateien eine kontextabhängige Zusammenführung, versucht das allerdings nicht bei Binärdateien.
Um festzustellen, ob eine kontextabhängige Zusammenführung
möglich ist, überprüft Subversion die Eigenschaft
svn:mime-type
. Falls die Datei keine Eigenschaft
svn:mime-type
besitzt, oder ein textueller
MIME-Typ ist (z.B. text/*
), nimmt Subversion
an, dass es sich um eine Textdatei handelt. Anderenfalls nimmt
Subversion an, dass die Datei binär ist. Subversion hilft
Benutzern auch, indem es einen Algorithmus zur Erkennung von
Binärdaten bei den Befehlen svn import und
svn add ausführt. Diese Befehle werden eine
gute Schätzung machen und (möglicherweise) eine binäre Eigenschaft
svn:mime-type
auf die hinzuzufügende
Datei setzen. (Falls sich Subversion verschätzt, kann der
Benutzer stets die Eigenschaft entfernen oder manuell
bearbeiten.)