Versionskontrolle. Warum?... Und vor allem: Womit?



Ähnliche Dokumente
Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Moodle aktuell halten mit Git

SMART Newsletter Education Solutions April 2015

Torsten Flatter inovex GmbH. "Git.NET" gibt's nicht?

Deployment Deployment Seite 1 / 25

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Praktikum Ingenieurinformatik (PI)

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Versionskontrolle mit Subversion

Versionskontrolle. Verteilte Versionskontrollsysteme. Richard Madsack. 25. November Versionskontrolle. Richard Madsack.

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit

Leichte-Sprache-Bilder

Kurzanleitung zu. von Daniel Jettka

Wie benutzt man TortoiseSVN

teischl.com Software Design & Services e.u. office@teischl.com

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit

KVIrc installieren (win) i. KVIrc installieren (win)

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Konzentration auf das. Wesentliche.

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

Professionelle Seminare im Bereich MS-Office

impact ordering Info Produktkonfigurator

Quick Guide Mitglieder

Fotostammtisch-Schaumburg

1. Weniger Steuern zahlen

Branching und Merging mit Visual Studio Team System

Idimager ein Bildverwaltungsprogramm-DAM Software

AirKey Das Handy ist der Schlüssel

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Shopz Zugang Neuanmeldung

EINFACHES HAUSHALT- KASSABUCH

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Informationen zum neuen Studmail häufige Fragen

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS Lehrstuhl i9, Prof. Dr. T.

Versionsverwaltung mit SVN

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Versionskontrollsysteme

Anleitung: Sammel-Rechnungen für Lizenzen bei Swiss Basketball

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories )

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Online bezahlen mit e-rechnung

Ergebnisse. Umfrage Kurz-Statistiken Umfrage 'Feedback und Entertain 2.0'

Java Entwicklung für Embedded Devices Best & Worst Practices!

Mercurial. or how I learned to stop worrying and love the merge. Ted Naleid IAIK

Audio/Video - Chat - System User Manual

Internet Explorer Version 6

Clientkonfiguration für Hosted Exchange 2010

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Kostenstellen verwalten. Tipps & Tricks

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Support Center Frankfurt Windows 2000 Server Neuer Client im Netzwerk

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Anleitung über den Umgang mit Schildern

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Step by Step Webserver unter Windows Server von Christian Bartl

Österreichische Trachtenjugend

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Welches Übersetzungsbüro passt zu mir?

Zimmertypen. Zimmertypen anlegen

Der Gabelstapler: Wie? Was? Wer? Wo?

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Open Source. Hendrik Ebbers 2015

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Widerrufsbelehrung der Free-Linked GmbH. Stand: Juni 2014

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Workshop: Eigenes Image ohne VMware-Programme erstellen

Bilder verkleinern oder vergrößern

Das Persönliche Budget in verständlicher Sprache

AirKey. Das Smartphone ist der Schlüssel

Reporting Services und SharePoint 2010 Teil 1

Oracle APEX Installer

Was ist Sozial-Raum-Orientierung?

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Installation der SAS Foundation Software auf Windows

Software Engineering in der Praxis

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

-Inhalte an cobra übergeben

SCHULUNG MIT SYSTEM: E-LEARNING VON RAUM21

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Bilder Schärfen und Rauschen entfernen

Festplatte defragmentieren Internetspuren und temporäre Dateien löschen

SEMINAR Modifikation für die Nutzung des Community Builders

EIDAMO Webshop-Lösung - White Paper

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

TeamSpeak3 Einrichten

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Schuljahreswechsel im Schul-Webportal

Erfahrungen mit Hartz IV- Empfängern

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Wissensinseln trocken legen

Benachrichtigungsmöglichkeiten in SMC 2.6

Transkript:

Warum?... Und vor allem: Womit?

Agenda Motivation & Grundlagen Beispiel: Perforce Beispiel: git Wrap-Up Andreas Knirsch Bettina Kurz-Kalweit Clemens Fischer

aka.... Versionsverwaltung Konfigurationsmanagement oder auch... Version Control System (VCS) Revision Control Source Control Software Configuration Management etc.

Erfahrungen Was Warum Wie? r e d e i w o...genaus bn Some rights reserved by tantek

Unser Ziel: Funktionierendes System b Some rights reserved by wwarby

Motivation für Verteilte/Parallele Entwicklung Verschiedene Versionen in Betrieb Traceablility (Code Change/Feature Requests) Rollback/Back-In-Time/Diff Unterschied zu anderen Disziplinen: Software kann jederzeit an jeder Stelle geändert werden! hohe Dynamik möglich!!

Motivation für Dynamik in der Entwicklung (und bei der Wartung) von Software kontrollierbar machen! Entwickler UNTERSTÜTZEN!!

Grundlagen

Terminologie Branch (Entwicklungszweig) um den (Haupt-)Entwicklungszweig aufzuspalten. und um den Code gefahrlos zu ändern. macht ggf. einen Merge notwendig (Integration in den Basiszweig) Tag/Label (Bezeichner) um eine bestimmte Software-Version zu markieren und einfach wieder rekonstruieren zu können.

Terminologie: Branches & Tags

Terminologie: Merging Branches

Softwareentwicklung Das echte Leben sieht leider nicht so aus.

Szenario I: Parallele Entwicklung Mehrere Entwickler arbeiten an einer Software Unterschiedliche Fähigkeiten, Verständnis, Ziele, Sprache, etc. Komponentenbasierte Systeme mit unvollständig beschriebenen Schnittstellen ba Some rights reserved by gruntzooki

Szenario I: Parallele Entwicklung (II) BIG BANG! Besser: Continuous Integration.. en eh rg Vo es tiv ra ite : st de in m zu er od

Szenario I: Parallele Entwicklung (III) BANG BANG BANG

Szenario I: Parallele Entwicklung (IV) löst nicht alle der genannten Probleme... aber macht den Entwicklungsprozess transparent und nachvollziehbar. erreichen des Ziels nicht mit weniger Aufwand aber vorhersagbarer!!! b Some rights reserved by wwarby

Szenario II: Wartung Hauptentwicklungszweig mit neuen Features Frühere Versionen noch in Betrieb Kunde benötigt Bugfix für frühere Version Mit kein Problem solange immer schön Tags benutzt wurden :-)

Szenario II: Wartung (II) oder Cherry Picking

Szenario III: Traceability Üblicherweise sind Anforderungen, bzw. Features mit eindeutigen IDs gekennzeichnet. Auch Fehler sind in einem Bug-/Issuetracker mit eindeutigen IDs gekennzeichnet. Werden diese IDs beim Submit / Commit verwendet, kann der Bezug zur Software einfach und jederzeit aufgelöst werden. Dies gilt besonders für zu Merge/Integration. Hier gilt was auch für Code zutrifft: Kommentare weiß man erst zu schätzen wenn man sie braucht :-)

Szenario IV: Rollback/Back-In-Time/Diff Jeder Softwarestand ist wiederherstellbar, solange man sich noch erinnert welchen Stand man benötigt. Dazu braucht man entweder. Datum/Uhrzeit, ID des Commits/Submits oder ein Tag/Label. Kommentare zu den Commits/Submits helfen oft!! Ein Tag mehr schadet nie!! Noch weniger ein Schema für Tags!!

Aber... Welches Werkzeug ist das Beste? Wir erinnern uns: Ziel ist ein funktionierendes System :-)

Aber... Welches Werkzeug ist das Beste? (II) Projekt ist u.a. gekennzeichnet durch: Aufgabe, Mitarbeiter, Budget, Zeit, Abhängigkeiten/Vorgaben, etc.

Aber... Welches Werkzeug ist das Beste? (III) 1 1 2 4 Ergebnis: Mit jedem der vorhandenen Werkzeug ist die hier gestellte Aufgabe lösbar :-)

Beispiel: Perforce aka. p4

Überblick p4 MS Windows with Visual Studio Linux with Eclipse IDE Mac OSX with Eclipse IDE

p4 weitere Features Apache Ant... Redmine Bugzilla Apache Maven Build Tools + CI Tracking System CodeStriker GIT Fusion Code Reviewer Perforce... Third Party Merge/ Diff Tool 3ds IDE Plugin Eclipse Client Application Maya Visual Studio Softimage P4 Visual Client Web Client Photoshop

Beispiel: git

Historie Linux Kernel 1300 Entwickler in der ganzen Welt verstreut 15 Millionen Zeilen Code (3.2 Kernel) Ca. 10.000 Patches pro Kernel-Release Änderungen wurden als Patches via E-Mail oder Mailinglisten weitergereicht Einführung des proprietären DVCS BitKeeper BitKeeper entzog der Kernel-Community wegen Streitereien die kostenlose Lizenz J. Corbet, G. Kroah-Hartman, A. McPherson: Linux Kernel Development How Fast it is Going, Who is Doing It, What They are Doing, and Who is Sponsoring It. The Linux Foundation, März 2012

Historie git Linus Torvalds startete 2005 die Entwicklung von git Anlehnend an BitKeeper, jedoch zusätzlich: Hohe Effizienz Hohe Integrität der Daten Verteilte Arbeitsabläufe Seit der Veröffentlichung ist git das offizielle Versionskontrollsystem des Linux Kernels

git Optimiert für nicht-lineare Entwicklung

git Keine zentralen Server Am Beispiel von OMAP5

git Weitere Eigenschaften Versionierung auf Dateisystemebene Webinterfaces Interoperabel zu anderen Versionskontrollsystemen Sichere Projekthistorie

git Weit verbreitet

Unvollständiger Überblick Werkzeug git svn p4 OpenSource Ja Ja (Nein) Administrierbarkeit - - ++ Serverzentriert Nein Ja Ja Verteilte Versionsverwaltung Push-Notification Support Ja Master-Slave Proxy Nein +/- Nein +/- Ja ++ Bug-Tracking 3rd Party 3rd Party Bridged/Jobs Tool-Umfang +/- +/- ++

Wrap Up

Und noch mal... Welches Werkzeug ist das Beste? Genau das, dass am besten zum Projekt passt und auch beherrscht wird! Wir erinnern uns: Ziel ist ein funktionierendes System und nicht die Klärung einer Religionsfrage :-)

Warum jetzt noch mal? und nicht Dropbox/Google Drive/NFS/etc.? wenn es nur zusätzlichen Aufwand bedeutet? wenn ich doch nur coden will?

Wann erstellt man einen Branch/Tag? Tag: Jeder Softwarestand der evtl. nochmal gebraucht wird!! oder alles was aus der Hand gegeben wird!! Branch: Wenn (umfangreiche) Änderungen an der Software andere stören würden; zur (temporären) Entkopplung der Entwicklung. Vorsicht: kostet Aufwand!!

und die Zukunft im ICM-Labor?

Literatur Perforce 2013.1 P4 User s Guide April 2013

Clemens Fischer Bettina Kurz-Kalweit Andreas Knirsch