Übersicht und beratung von versionsverwaltungen für quellcode (scm)

12
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) Tommy Ziegler (@tommyziegler_de) & 25. August 2014 bei lowcotel GmbH in Lüneburg

Upload: tommy-ziegler

Post on 18-Jul-2015

74 views

Category:

Technology


3 download

TRANSCRIPT

Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM)

Tommy Ziegler (@tommyziegler_de)

&

25. August 2014 bei lowcotel GmbH in Lüneburg

Wer bin ich?• Tommy Ziegler - Twitter: @tommyziegler_de

Sr. Softwareentwickler & IT-Berater seit 2000Mein 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:

&

Agenda

• Mögliche Lösungen • Mein aktueller

Vorschlag

• Geschichte von Versionsverwaltungen

• Die wichtigsten Systeme und deren Entwicklung

• Vor- & Nachteile von SVN und Git

Geschichte von Versionsverwaltungenlokal zentral dezentral

Legende:

von 1982 bis 2010

Geschichte von Versionsverwaltungen

meine Evolution

natürliche Evolution

mercurial

2010 - 2012

2005

lokal zentral dezentral

relevante Technologien

Geschichte von Versionsverwaltungenlokal zentral dezentral

Quelle: http://bit.ly/1pPHVkN, Stand: August 2014

Mercurial

Die wichtigsten Systeme undderen Entwicklung (mit Google Trends)

Git SVN(Apache Subversion)

CVS(Concurrent Version

System)

CVS

MercurialSVNGit

• 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

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 =-

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.)

Ein Ziel was man hat …

automatisches bauen u.ausliefern der Software

Vielen Dank

Scrum

Agile Softwareentwicklung

Spring Framework

Java

C/C++, Objective C, Swift

Mac OS X, Linux and WindowsContinuous 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