Was macht TortoiseSVN zu einem guten Subversion Client? Hier eine Liste der herausragenden Eigenschaften:
TortoiseSVN fügt sich nahtlos in die Windows Shell (den Explorer) ein. Das heißt, Sie können weiter mit den gewohnten Programmen arbeiten und müssen sich nicht an ein neues Programm gewöhnen. Und brauchen auch nicht jedes mal erst in ein anderes Programm zu wechseln, wenn Sie Funktionen der Versionskontrolle benötigen!
Und dabei sind Sie nicht einmal gezwungen, den Windows Explorer zu benutzen. Auch in anderen Dateimanagern stehen Ihnen prinzipiell das Kontextmenü und die anderen Funktionen von TortoiseSVN jederzeit zur Verfügung. Wobei allerdings zu beachten ist, dass TortoiseSVN speziell als Erweiterung des Windows Explorers entwickelt wird. Daher kann es sein, dass in anderen Programmen die Integration nicht vollständig ist und beispielsweise die überlagerten Symbole nicht angezeigt werden.
Der Status von jeder Datei unter Versionskontrolle wird durch ein kleines überlagertes Symbol angezeigt. Auf diese Weise können Sie sofort den Zustand Ihrer Arbeitskopie erkennen.
Alle Befehle von Subversion sind über das Kontextmenü des Explorers zugänglich; TortoiseSVN fügt dort ein eigenes Untermenü ein.
Da TortoiseSVN ein Subversion Client ist, möchten wir auch ein paar Features von Subversion selbst erwähnen:
CVS speichert nur die Geschichte von einzelnen Dateien, aber Subversion implementiert ein „virtuelles“ kontrolliertes Dateisystem, welches auch Änderungen an Ordnern über die Zeit speichert. Dateien und Ordner werden kontrolliert. Daher gibt es Befehle, um Dateien/Ordner zu verschieben. Und der Kopiere... Befehl arbeitet mit Dateien und Ordnern.
Eine Übertragung von Änderungen geht entweder komplett in das Projektarchiv oder gar nicht. Das erlaubt Entwicklern, Änderungen als zusammenhängende logische Einheit zu übertragen.
Jede Datei und jeder Ordner hat einen unsichtbaren Satz von „Eigenschaften“ angehängt. Sie können selbst neue Eigenschaften definieren und jede Art von Schlüssel/Wertepaare speichern. Änderungen an Eigenschaften werden versioniert, genauso wie der normale Dateiinhalt.
Subversion hat einen abstrakten Begriff des Zugriffs auf das Projektarchiv, der es einfach macht, neue Netzwerkschichten zu implementieren. Subversions am weitesten fortgeschrittener Netzwerkserver ist ein Modul für den Apache Web-Server, welcher eine Variante von HTTP genannt WebDAV/DeltaV nutzt. Dies gibt Subversion einen Vorteil an Stabilität und Interoperabilität, und stellt verschiedene Schlüsselfunktionen gratis zur Verfügung: Anmeldung, Autorisierung, Netzwerkdatenkompression, Verschlüsselung via SSL und das Betrachten des Projektarchivs in einem Web-Browser zum Beispiel. Ein kleinerer Subversion Server ist ebenfalls vorhanden. Dieser Server nutzt ein eigenes Netzwerkprotokoll, welches über SSH getunnelt werden kann.
Subversion drückt Dateiunterschiede mit Hilfe eines binären Differenzalgorithmus aus, welcher identisch für Text- und Binärdateien arbeitet. Beide Dateiarten werden gleich komprimiert im Projektarchiv abgespeichert, und jeweils nur diese Differenz wird in beiden Richtungen übers Netzwerk übertragen.
Die Kosten für Verzweigen und Markieren müssen nicht proportional zur Projektgröße sein. Subversion erstellt Verzweigungen und Markierungen durch einfaches Kopieren des Projektes. Dabei wird ein Mechanismus ähnlich dem eines Verweises verwendet. Diese Operationen benötigen deshalb nur wenig Zeit und Speicherplatz.
Subversion hat keine Altlasten; es ist als Sammlung von C-Bibliotheken mit gut definierten API's implementiert. Dies macht Subversion extrem gut wartbar und durch andere Programme und Programmiersprachen nutzbar.