Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
1. Übersicht und Beratung
von Versionsverwaltungen
für Quellcode (SCM)
Tommy Ziegler (@tommyziegler_de)
&
25. August 2014 bei lowcotel GmbH in Lüneburg
2. Wer bin ich?
• Tommy Ziegler - Twitter: @tommyziegler_de
Sr. Softwareentwickler & IT-Berater seit 2000
Mein Blog: http://www.tommyziegler.com
• Lieblingsaktivitäten: in Riga/Lettland zu sein, gut
Essen, Podcasts hören, viele neue Dinge lernen
und auszuprobieren
• Beratungsgebiete in der Software-Entwicklung:
• Agile Prozess-, Technologie- & Projekt-Analyse
• Coaching von moderner Entwicklung wie TDD,
CI-Pipelines, Automatisierung, DevOps uvm.
• Sicherheitsanalysen Ihrer Software und
Infrastruktur
• sowie viele weitere Themen …
Senior Softwareentwickler
Kopierschutztechnologie No. 1
2008 acquired from:
&
3. Agenda
• Mögliche Lösungen
• Mein aktueller
Vorschlag
• Geschichte von
Versionsverwaltungen
• Die wichtigsten
Systeme und deren
Entwicklung
• Vor- & Nachteile von
SVN und Git
5. Legende:
von 1982 bis 2010
Geschichte von Versionsverwaltungen
meine Evolution
natürliche Evolution
mercurial
2010- 2012
2005
lokal zentral dezentral
relevante
Technologien
7. Quelle: http://bit.ly/1pPHVkN, Stand: August 2014
Mercurial
Die wichtigsten Systeme und
deren Entwicklung (mit Google Trends)
Git SVN
(Apache Subversion)
CVS
(Concurrent Version
System)
CVS
Mercurial
SVN
Git
8. • Langsam
• Historie “dumm”
• Branching ist
anstrengend
• Binärbehandlung
• Ohne Server
unbrauchbar
• Schnell
• Mergen ist sicher
& einfach
• Branching ist
erwünscht
• Ohne Server
verwendbar
• Sehr intellig.
Historie
• Steiniger Einstieg für
Anfänger
• Verlangt ein
Paradigmenwechsel
• Nicht auf allen “OS”
optimal.
• Fehlendes Rechte-
management
Vor- & Nachteile von …
• Etabliert
• Techn.
Ausgereift
• Verstanden
• Unterstützt
• Verfügbar
• Rechte-
management
9. Mögliche Lösungen
• Eigene Infrastruktur (initiale Installationskosten, sowie Quellcode in-House und sicher, aber Wartung
der Hard- u. Software ist nötig)
•
• Apache SVN (Cross Platform)
• VisualSVN Server (Windows)
• Bonobo Git Server (Windows)
• Gitolite (Linux)
• GitLab Community Edition (Collaboration Server)
• Software as a Service (monatl. Kosten je nach gebrauch, sowie der Quellcode ist bei 3rd Party
Anbietern vielleicht unsicher)
• Github (5 Repos = 7 $ pro Monat)
• Bitbucket (Kostenlos für 5 Nutzer, ab 10 User 1 $ pro User im Monat)
• Code Reviews, JIRA integration, Custom Domains, REST API, unlimitierte Repos
- Open Source (Apache v2 Lizenz) -
- Kommerziell (Standard Edition $ 0)
(Enterprise Edition $ 950) -
- Open Source (MIT Lizenz) -
- Open Source (GPL-v2 Lizenz) -
- Open Source (eigene Lizenz) -
-= Lizenz der Serversoftware =-
10. Mein aktueller Vorschlag
• Da es die zukunftssicherste Technologie aktuell am Markt ist
• Einfach zu sichern via Remote Repository
• Schnell und kleiner Footprint
• viele Entwickler sprechen Git
Server
• Einfache Installation auf der aktuellen Hard- und Software
• Einfaches System im Betrieb
(Rechte-Management, Backup etc.)
11. Ein Ziel was man hat …
automatisches bauen u.
ausliefern der Software
12. Vielen Dank
Scrum
Agile Softwareentwicklung
Spring Framework
Java
C/C++, Objective C, Swift
Mac OS X, Linux and Windows
Continuous Integration
Continuous Deployment
Cloud Computing
Full-Stack Development
Test-Driven Development
Domain-Driven Development
Virtualisation
Kanban
unsere weiteren Themen:
Cross-Platform
Configuration Management
AngularJS
Security und IP Protection