Visual SourceSafe

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Visual SourceSafe
Basisdaten

Entwickler Microsoft
Aktuelle Version 8.0.50727.1551
(2005)
Betriebssystem Microsoft Windows
Kategorie Versionsverwaltung
Lizenz EULA
deutschsprachig ja
VS80

Visual SourceSafe (VSS) ist eine nicht mehr weiterentwickelte Client-/Server-Anwendung von Microsoft zur Versionsverwaltung von Dateien, welche hauptsächlich im Zusammenhang mit Software-Quelltext verwendet wird. Es wurde vorwiegend zur Verwendung auf Einzelplatzsystemen oder für kleine Teams entwickelt. Es war Bestandteil älterer Visual-Studio-Distributionen und ist daher recht verbreitet.

Zu beachten ist, dass Microsoft die Abkürzung VSS auch für den Volume Shadow Copy Service verwendet.

Grundsätzliches

[Bearbeiten | Quelltext bearbeiten]

SourceSafe ist ein Vertreter des Lock-Modify-Write-Versionsverwaltungskonzeptes, was bedeutet, dass Dateien vor einer Änderung ausgecheckt werden müssen. Beim Einchecken werden die veränderten Dateien in die Datenbank übernommen. SourceSafe erlaubt, im Gegensatz zu reinen Lock-Modify-Write-Vertretern, das gleichzeitige Auschecken derselben Dateien auf verschiedenen Rechnern, der Benutzer erhält jedoch eine entsprechende Warnung, so dass er selbst entscheiden kann, ob seine beabsichtigte Änderung eventuell mit der Änderung des anderen Entwicklers kollidiert.

SourceSafe versioniert jede Datei einzeln, es gibt keine Informationen darüber, welche Versionen verschiedener Dateien zusammengehören. Es werden jedoch sogenannte „Labels“ unterstützt, mit denen ein bestimmter Stand eines Verzeichnisbaums markiert werden kann (z. B. eine Version für eine Produktfreigabe). Als Besonderheit unterstützt VSS neben den „Branches“ (Aufsplittung der Entwicklungspfade einer Datei) sogenannte „Shares“: Dateien, die in mehreren Verzeichnissen eingebunden sind. Wird die Datei in einem Ast aktualisiert, ändert sie sich automatisch auch in allen verknüpften Ästen des Baums.

Team Foundation Server

Microsoft entwickelte Team Foundation Server als Nachfolger von Microsoft Visual SourceSafe, der nicht mehr weiterentwickelt wird. Ab der Version 2010 kann Team Foundation Server auch auf einem Client-Betriebssystem installiert werden. Hierfür gibt es eine Basis-Konfiguration, die die Express-Version des Microsoft SQL Servers zur Datenhaltung benutzt. Diese Installationsform ist für Einzelentwickler gedacht, die Team Foundation Server benutzen wollen. Seit 2018 werden seitens Microsoft die cloudbasierten Azure DevOps Services (vormals Visual Studio Online bzw. später Visual Studio Team Services) empfohlen.

Serverseitig gibt es kein spezielles Programm oder einen Dienst, vielmehr wird lediglich eine normale SMB-Dateifreigabe benutzt. Dadurch ist die Installation einer SourceSafe-Datenbank sehr einfach und ohne serverseitige Veränderungen möglich. Darin besteht aber gleichzeitig eines der größten Probleme von VSS: Da jeder Client direkt auf die Dateistruktur der Serverdatenbank zugreift, können clientseitige Abstürze oder Probleme dazu führen, dass die Datenbank inkonsistent wird. Zum Funktionsumfang gehören daher Tools, die eine Datenbank reparieren können. Auch eine manuelle Manipulation der Dateien in der Dateistruktur des Servers ist prinzipiell durch jeden Entwickler mit Zugriff auf die Datenbank möglich. Da die Versionsverwaltungsdatenbank bei vielen Entwicklungsteams zum zentralen Arbeitsmittel für sämtliche Projekte gehört, ist daher ein solides Backupkonzept erforderlich.

Erst mit Visual SourceSafe 2005 wurde eine zusätzliche Server-Komponente – der Visual SourceSafe 2005 LAN booster service – eingeführt, der die Netzwerkkommunikation beschleunigen soll. Visual SourceSafe Clients funktionieren jedoch auch ohne diese Komponente.

Clientseitig stehen der Visual SourceSafe-Client oder eine der für sämtliche Microsoft-Entwicklungsumgebungen verfügbaren SourceSafe-Integrationen zur Verfügung. Der Client braucht in der Regel eine direkte SMB-Dateifreigabe-Verbindung zum Server, was eine Verwendung von SourceSafe im Internet praktisch unmöglich macht – wofür es jedoch auch nie konzipiert worden ist.