Diese Dokumentation wurde zur Beschreibung der Serie 1.6.x von 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.

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