Brauche ich ein DVCS?

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

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

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

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Versionsverwaltung mit git. Christoph Knabe FB VI

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

Versionskontrollsysteme. Uwe Berger & Markus Dahms <bralug@bralug.de>

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

Versionskontrollsysteme

Praktikum Ingenieurinformatik (PI)

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

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

Gitting started. Christian Neukirchen. 14dec2011

Iterativ. Inkrementell

Verteilte Versionskontrolle mit Mercurial

Versionierung und Bugtracking mit Git(Hub)

Abhängigkeiten und Git

Das Tübinger Softwareprojekt

Linux Cafe Referent: Bernd Strößenreuther

Einführung in Git. Dirk Deimeke. 19. August My own IT. ddeimeke (My own IT) Einführung in Git 19. August / 23

Medieninformatik Praktikum. Jens Rademacher

Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

git Änderungen verwalten mit git

Git - Fast Version Control System

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

Björn Feustel Steffen Schluff. Build-Infrastrukturen mit marktgängigen Tools

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

Versionskontrolle mit Mercurial. Michael Gebetsroither

Erfolgreicher Ums9eg auf Git

Von SVN zu Git. Daniel Willmann cbna

Verteilte Versionskontrolle mit Mercurial (DVCS)

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen

Having fun with GIT. Chris Wewerka. Software Development Specialist

Git in großen Projekten

Git Eine Einführung. LinuxTag 2013, Berlin. Julius Plenz. 22. Mai 2013

Atlassian Git Essentials Nahtlose Entwicklungsworkflows aus einer Hand

Eine Einführung in das verteilte Quelltextverwaltungssystem Git

Moodle aktuell halten mit Git

Apache Subversion (SVN)

Verteile Revisionskontrolle mit GIT

Auswahl eines Continuous Integrationsservers

Versionskontrolle mit Subversion

git verteilte Versionskontrolle

Versionsmanagement mit Subversion

Versionsverwaltung für r Visual Studio.NET mit Subversion

Build-Infrastrukturen mit marktgängigen Tools

Effektiver Einsatz von Code-Reviews

EGit: Die effiziente Git- Integration in Eclipse

Last- und Stresstest mit the Grinder 3

Open Build Service als zentrale Entwicklungsumgebung

Java User Group München

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

Apache Subversion (SVN)

Einführung in Subversion. Tutorium SWP

Einführung in git. Johannes Gilger & Matthias Lederhofer. Rechen- und Kommunikationszentrum der RWTH Aachen Network Operation Center. 14.

Seminar. Bachelor Wirtschaftsinformatik

NoSQL Datenbanken am Beispiel von CouchDB

Deployment Deployment Seite 1 / 25

Versionsverwaltung mit SVN

Issue Tracker & Wiki

Software Engineering 2 Versionsverwaltung

Versionsverwaltung von Softwareartefakten. Dr. Thorsten Arendt Marburg, 06. November 2014

Versionsverwaltung mit Mercurial für Einsteiger

Entwicklungswerkzeuge

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Dr. R. Guderlei exxcellent solutions gmbh Tim Felgentreff HPI. Versionsmanagement. Zentral oder Verteilt?

Einführung in Subversion

Git II. Dezentrale Versionsverwaltung im Team

Software Engineering I

Versionkontrolle mit git

Git Workshop. LiWoLi Florian Preinstorfer. Wolfgang Silbermayr

Julius Plenz. Valentin Haenel. Git. Verteilte Versionsverwaltung für Code Dokumente. 2. Auflage. Open Source Press

Konfigurationsmanagement

Verteilte Versionsverwaltung mit Git

IntelliJ IDEA. Gliederung. Was ist IntelliJ IDEA? Lizenzmodell Warum IntelliJ einsetzen? IntelliJ und Eclipse Demo. Blick über den Eclipse-Tellerrand

Open Source. Hendrik Ebbers 2015

Struts 2 Das Imperium schlägt zurück?

Software Product Lines

Sozio- Technische Systeme

WOZU VERSIONSKONTROLLE?

Programmieren 2 05 Versionsverwaltung mit Git

Dezentrale Versionsverwaltung

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm

Software Configuration Management (SCM)

Versionsverwaltung. Robert Wiesner. 13. März Inhaltsverzeichnis. 1 Inhaltsangabe 2. 2 Einleitung 2

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

Versionskontrolle. Vortrag im Master-Praktikum MindStreams Sommersemester Michael Fiedler 30.

Build-Management mit marktüblichen Tools

Programmieren 2 06 Git-Teamwork und Egit

Versionskontrolle mit Apache Subversion

Die Projek*ools. Files, Git, Tickets & Time

Verteiltes Dokumentenmanagement

Git-Workshop, Teil I

Gliederung. Einführung. Kleines Maven Wörterbuch. Maven im Unternehmenseinsatz. Was bringt die Zukunft?

Spiel, Spaß und Spannung mit Git

Software Engineering in der Praxis

Subversion. Quellcodeverwaltung a la Opensource. Matthias Fischer. Technical Expert.NET Tieto, JOSI / Microsoft Matthias.Fischer@tieto.

So#ware Engineering Konfigura0onsmanagement

Transkript:

Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Kristian Köhler Steffen Schluff Version:.0 www.oio.de info@oio.de Gliederung Einleitung Grundbegriffe Workflows Demo Fazit 2

Gliederung Einleitung Grundbegriffe Workflows Demo Fazit 3 DVCS Historie (Auszug) Bazaar Mercurial Bit Keeper GNU arch Darcs Monotone Git 998 2000 2002 2004 2006 4 2

Unsere VCS Historie Repräsentativ für viele Entwickler, die Open Source Tools nutzen Kein Änderung war zwingend notwendig, aber wer einmal gewechselt hat, will nicht mehr zurück Git RCS CVS SVN Mercurial 5 Gliederung Einleitung Grundbegriffe Workflows Demo Fazit 6 3

Subversion und der einsame Entwickler SVN diff, cat, 7 DVCS und der einsame Entwickler DVCS diff, cat, 8 4

Der einsame Entwickler Kein paralleles Arbeiten mit anderen Kollegen Geringe Unterschiede zwischen SVN und DVCS im Befehlssatz Bei DVCS immer alles auf einem PC Setup für DVCS (argumentativ) leichter DVCS Repo lebt im Unterverzeichnis der 9 Subversion und viele Entwickler Central SVN update update update Carol s Clients / s 0 5

DVCS und viele Entwickler () Clients / s DVCS DVCS Carol s DVCS diff, cat, diff, cat, diff, cat, Carol s DVCS und viele Entwickler (2) Clients / s DVCS DVCS Carol s DVCS update update update Carol s 2 6

Viele Entwickler Jeder Entwickler hat eigenes DVCS Repo Daher Idee eines zusätzlichen zentralen DVCS Repos Zentrales DVCS Repo ähnlich zu SVN Ansatz Protokoll notwendig für Kommunikation zwischen DVCS Repos 3 In ein DVCS Projekt einsteigen () clone DVCS 4 7

In ein DVCS Projekt einsteigen (2) clone DVCS DVCS 5 In eigenem entwickeln DVCS DVCS 6 8

Änderungen an zentrales Repo übergeben 2 push DVCS DVCS 7 Änderungen aus zentralem Repo übernehmen 2 push 3 pull DVCS DVCS 8 9

Änderungen in eigene übernehmen 2 push 3 pull DVCS DVCS update 4 9 Changeset basiertes Arbeiten Eigener Befehlssatz für Abgleich zwischen DVCS Repos clone, push, pull, Abgleich basiert auf Änderungen nicht auf Dokumentversionen Es existiert per se keine verbindliche Dokumentversion In SVN implicit changeset : if you compare tree N with tree N Änderung (Changeset) ist der Unterschied zwischen zwei Versionen Änderungen in einem DVCS sind wie Overhead Folien Mehre übereinander gelegt ergeben ein Dokument Änderungen müssen eindeutig adressierbar sein Unterscheidung zwischen lokalen und globalen Namen 20 0

Zentralisiertes Arbeiten mit Revisionen Kohle + Bier Kohle Bier Kohle + Salat Bier + Fleisch Salat Kohle Bier Salat Fleisch r r2 r3 r4 Alice Bob Carol 2 Dezentrales Arbeiten mit Änderungen Kohle Central Kohle Bier Salat Fleisch + Bier + Salat Kohle c + Fleisch Kohle Alice c3 Carol + Bier c2 Kohle + Fleisch Bob c2 + Salat c + Salat + Bier 22

Viele Köche verderben den Brei Bisher wurde einfacher Fall ohne parallele Entwicklung betrachtet Nur ein Entwickler nimmt Änderungen vor und verteilt diese Was ist wenn mehrere Entwickler gleichzeitig ändern? D.h. mehrere Änderungen bezogen auf den gleichen Ausgangsstand Bei SVN führt dies zu einem Konflikt, der Merging benötigt Sonst können keine Änderungen mehr an das Repo übergeben werden 23 In eigenem entwickeln (again) DVCS DVCS 2 24 2

Beide Änderungen an zentrales Repo senden () 3 push DVCS DVCS 2 25 Beide Änderungen an zentrales Repo senden (2) 3 push 4 push DVCS DVCS 2 26 3

Zweite Änderung aus zentralem Repo übernehmen 3 push 4 pull DVCS DVCS 2 27 Änderungen mergen 3 push 4 pull DVCS DVCS 2 ci merge 5 28 4

Änderungen mergen und ten 3 push 4 pull DVCS DVCS 2 ci merge 5 ci 6 29 Merge an zentrales Repo senden 3 push 4 pull 7 push DVCS DVCS 2 ci merge 5 ci 6 30 5

ODER Änderungen (vorläufig) ignorieren 3 push 4 pull DVCS DVCS 2 5 3 Konflikte und Branches Prämisse: Branches / mehrere Heads sind kein grosses Ding DVCS besitzen gut funktionierendes Mergetracking Branches können lokal leicht entstehen Explizites Branchen, Commit auf alte Version Branches können durch pull entstehen Vermengung eigener und fremder Changesets Änderungen / Branches landen im lokalen Repo nicht in der WC Branches sind aber nicht überall gewünscht In zentralem Repo eher nicht gewünscht Wer darf auf welchem Repo push und pull ausführen? 32 6

Gliederung Einleitung Grundbegriffe Workflows Demo Fazit 33 Subversion-Style Workflow Shared push/pull Clients / s 34 7

Integration Manager Workflow (Gatekeeper) push Integration Manager Public Public Public push Integration Manager push push 35 Dictator and Lieutenants Workflow Public Dictator Lieutenant Public Lieutenant Public Public Public Public Public 36 8

Kombinierte Workflows Central (Subversion) /update DVCS DVCS 37 Gliederung Einleitung Grundbegriffe Workflows Demo Fazit 38 9

Demo Demo DVCS 39 Gliederung Einleitung Grundbegriffe Workflows Demo Fazit 40 20

Fazit Flexiblere Workflows möglich aber nicht zwingend Auch in Kombination mit zentralem VCS Bessere Entwicklerkooperation und -isolation Branches und lokales Arbeiten Ad-hoc Zusammenarbeit und leichtes Merging Lernkurve nicht so steil wie befürchtet Toolunterstützung durch Drittanbieter ist erst im Entstehen Brauch ich es? - Nein, ich will es! 4 If you remember one thing Who the F*** cares? Use what YOU like, not what someone on the internet tells you to. (http://www.gitvsmercurial.com) 42 2

Mehr von OIO zum Thema... () Schulung: Versionsverwaltung mit Subversion http://www.oio.de/subversion-svn-schulung.htm Schulung: Versionsverwaltung mit CVS http://www.oio.de/seminar/open-source/cvs-schulung.htm Vortrag OOP 2006: Subversion - Ein besseres CVS? http://www.oio.de/m/konf/oop2006/svn.pdf Referenz: Open Source Support: Einsatzkonzept für Subversion http://www.oio.de/referenzen/competence-center/referenz-beratungopen-source-support-svn-subversion.htm 43 Mehr von OIO zum Thema... (2) Beratung zu Open Source Tools http://www.oio.de/beratung-consulting/open-sourcesoftware/tools/index.htm Referenz: Jumpstart: Webbasierte Informations- und Abrechnungsplattform im Gesundheitswesen http://www.oio.de/referenzen/competence-center/coaching-beratungwebbasierte-informations-und-abrechnungsplattform-imgesundheitswesen.htm Schulung zu Apache Ant und Maven http://www.oio.de/seminar/open-source/ant-schulung.htm http://www.oio.de/maven-schulung.htm 44 22

Ihr Sprecher Kristian Köhler Software-Architekt, Trainer, Berater http://www.kkoehler.com Schwerpunkte Architekturen Java EE Backend Technologien 45 Ihr Sprecher Steffen Schluff Trainer, Berater, Entwickler Schwerpunkte Open Source Tooling Build Management Refactoring 46 23

?? Fragen??? Orientation Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de?? 47 Vielen Dank für ihre Aufmerksamkeit! Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de 24