Versionsverwaltung
für Visual Studio .NET
mit Subversion
Udo Pracht
08.05.2007
EMail: [email protected]
Web: www.udo-pracht.de
Inhalt
 Versionsverwaltung
 Vergleich ausgewählter Systeme
 Subversion
 Funktionsweise und Architektur
 Installation
 Subversion in der Praxis
 Grafische Clients & Explorer-AddIns
 Visual Studio AddIns
 Konzepte des Entwicklungsprozesses mit Subversion
(Checkout, Lock, Update, Merge, Tags und Branches)
Begriffe
 Version Control System (VCS)
oder
Source Code/Control Managementsystem (SCM)
= Versions-/Quelltext-Verwaltung
 Software Configuration Management (SCM)
= Versionsverwaltung + Build-Umgebung
(evtl. automatisiert)
Ausgewählte VCS




Concurrent Versions System (CVS)
Subversion (SVN)
Visual Source Safe (VSS)
Team Foundation Version Control (TFVC)
Hier nicht betrachtet:
 Rational ClearCase (kommerziell)
 BitKeeper (kommerziell, Linuxkernel bis 2005)
 Telelogic Synergy/CM (kommerziell, ehemals Continuus)
 Serena PVCS Version Manager (kommerziell, ehemals Merant PVCS)
 + weitere kommerzielle System und viel konkurrierende OSS-Projekte
Ausgewählte VCS-Kriterien







Visual Studio Integration
Atomare Commits
Umbenennen mit Versionshistorie
Branching (Verzweigungen)
Arbeitsweisen ("Lock Modify Write" vs. "Copy Modify Merge")
(Netzwerk-)Zugriffsarten
Umgang mit Binärdaten
Vergleich ausgewählter VCS
Visual Studio Integration
Ablage
Atomare Commits
Verschieben & Umbenennen
mit Versionshistorie
Branching
Arbeitsweise
(Netzwerk-)Zugriff
Umgang mit Binärdaten
CVS
Ja
Dateisystem
Nein
Nein
SVN
Ja
Berkeley-DB
oder Dateisystem
Ja
Ja
VSS
Ja
Dateisystem
TFVC
Ja
SQL Server
Nein
Ja
nur über VSS-Client Ja
Nein
Ja
nur über VSS-Client
Copy Modify Merge beide
Lock Modify Write
proprietäres
WebDAV/HTTP(S) proprietäres
Protokoll
oder eigenes
Protokoll
Protokoll
komplett
Differenz
komplett
Ja
beide
HTTP(S) + Web Service
(cachebar mit Team
Foundation Server Proxy)
Differenz
Subversion
 Konzeptionelle Weiterentwicklung von CVS
aber komplett unabhängiges Projekt
 Entwicklung seit 2000, initiiert durch CollabNet
 Version 1.0 am 23. Februar 2004
 Aktuelle Version: 1.4.3 (Stand Mai 2007)
 Open Source
 Programmiert in C
 Projekt umfasst: Serverkomponenten und
Commandline-Tools
 Ablage des Repository: Dateisystem ("FSFS", Default)
oder Berkeley-DB ("BDB")
Subversion - Architektur
Remote
Client
User Interfaces
Network
Subversion
Server
TortoiseSVN
AnkhSVN
http(s)://
Communication
and Access
Modules
Repository
svn
svn(s)://
UIs
Apache httpd
svnserve
mod_dav_svn
Berkeley-DB
...
file://
svn
Filesystem
Subversion – Serverseitige Installation
 SVN-Setup (svn-1.4.3-setup.exe) durchführen
 Repository anlegen ("svnadmin create <path>" oder per
TortoiseSVN)
 Wenn Zugriff über HTTP/HTTPS gewünscht:




Apache-Setup (mit oder ohne SSL) durchführen (Achtung: Version 2.0.59 !)
httpd.conf anpassen bzw. prüfen (LoadModule-Befehle für SVN-WebDAV)
Location-Direktive für freizugebende Repository in httpd.conf erstellen
Ggf. Apache Password-Datei erstellen
 Wenn Zugriff über svn-Protokoll gewünscht:
 Zugriff für das Repository über svn-Protokoll in svnserve.conf konfigurieren
 Passwort-Datei erstellen (Achtung: unverschlüsselt !  )
 svnserve als Windows-Service starten ("sc create …")
 Evtl. Firewall-Einstellungen anpassen
Subversion in der Praxis
 Grafische Clients & Explorer-AddIns:
TortoiseSVN, RapidSVN, SmartSVN
und weitere
 Visual Studio AddIns:
AnkhSVN (Open Source)
vs.
VisualSVN (kommerziell)
Entwicklung mit Subversion








Anlegen eines Repository
Einchecken der Sourcen
Erstmaliges Abrufen eines Repository
Update & Commit
Lock
Merge
Tags
Branches
Links
 Subversion
http://subversion.tigris.org/
 TortoiseSVN
http://tortoisesvn.tigris.org/
 AnkhSVN
http://ankhsvn.tigris.org/
 VisualSVN
http://www.visualsvn.com/
 Weiterführendes
 Installation & Konfiguration: Visual Studio 2005 + Subversion
http://vb-magazin.de/forums/blogs/janm/archive/2007/01/02/6893.aspx
 Anleitung Installation von Subversion in einer .NET Entwicklungsumgebung
http://www.aspheute.com/artikel/20040225.htm
 Vortrag von Dr. Holger Schwichtenberg auf der OOP 2007
http://www.sigs.de/download/oop_07/Schwichtenberg%20Di8-2%20Update.pdf
 Dispelling Subversion FUD
http://www.red-bean.com/sussman/svn-anti-fud.html
Herunterladen

Subversion und .NET-Entwicklung mit Visual Studio