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.

Binärdateien und Umwandlung

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.)