Versionsverwaltung für Visual Studio .NET mit

Werbung
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
TortoiseSVN
AnkhSVN
http(s)://
Communication
and Access
Subversion
Modules
Server
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