120 likes | 330 Views
Versionsverwaltung für Visual Studio .NET mit Subversion. Udo Pracht 08.05.2007. Inhalt. Versionsverwaltung Vergleich ausgewählter Systeme Subversion Funktionsweise und Architektur Installation Subversion in der Praxis Grafische Clients & Explorer-AddIns Visual Studio AddIns
E N D
Versionsverwaltung für Visual Studio .NETmit Subversion Udo Pracht 08.05.2007
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
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 TortoiseSVN AnkhSVN svn ... http(s):// svn(s):// Network Subversion Server UIs Communication and Access Modules Apache httpd svnserve file:// mod_dav_svn svn Repository Berkeley-DB 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 • Subversionhttp://subversion.tigris.org/ • TortoiseSVNhttp://tortoisesvn.tigris.org/ • AnkhSVNhttp://ankhsvn.tigris.org/ • VisualSVNhttp://www.visualsvn.com/ • Weiterführendes • Installation & Konfiguration: Visual Studio 2005 + Subversionhttp://vb-magazin.de/forums/blogs/janm/archive/2007/01/02/6893.aspx • Anleitung Installation von Subversion in einer .NET Entwicklungsumgebunghttp://www.aspheute.com/artikel/20040225.htm • Vortrag von Dr. Holger Schwichtenberg auf der OOP 2007http://www.sigs.de/download/oop_07/Schwichtenberg%20Di8-2%20Update.pdf • Dispelling Subversion FUDhttp://www.red-bean.com/sussman/svn-anti-fud.html