Agiler durch dezentraleVersionskontrolle (mit Git)Jonatan Antoni, Dr. Klaus Alfert                                   Folie...
Viele Open-Source Projekte wechseln zurZeit ihre Versionsverwaltung. Warum?Agiler mit dezentraler Versionskontrolle (mit G...
Der Industrie-Standard:Zentrale Versionskontrolle                                                                         ...
Der Industrie-Standard:Zentrale Versionskontrolle                                                                         ...
Dezentrale                 Mercurial (hg)                               DarcsVersionskontrolle          git               ...
Dezentrale Versionskontrolle (2)Mehrere Entwickler – ein gemeinsamesRepository                                            ...
Dezentrale Versionskontrolle (3)Mehrere Entwickler – mehrereRepositories                                                  ...
Das große Risiko:Unbeherrschbare Strukturen                                                                               ...
Wie arbeitet Git?                    Folie 9 von 40                    26. Januar 2012                    Klaus Alfert, Jo...
Parallele Entwicklung mit Git                                                                                      C      ...
Beobachtungen•      Viele kleine Commits•      Automatische Branches•      Automatische Merges•      Vollständige Historie...
Am Anfang war das Repository…                                 Public                               Repository             ...
…darin liegt die gesamte Historie.             tag                                       commit                           ...
Git und Subversion:Koexistenz erlaubt Migrationspfade.                              Subversion                            ...
Dezentrale Versionskontrolle –Warum will ich das?Fast alle Operationen sind lokal       – Extrem schnell       – Offline-A...
Organisation undtechnische KontrolleWie organisieren sich Open Source Projekte?                                           ...
Organisation von Repositories undWorkflows (1) Kleinere OS Projekte                                                       ...
Organisation von Repositories undWorkflows (1) Integration Manager Workflow                                               ...
Organisation von Repositories undWorkflows (2) Größere OS Projekte                                                        ...
Organisation von Repositories undWorkflows (2) Diktator und Leutnant Workflow                                             ...
Dezentrales SCM imUnternehmenLohnt sich der Wechsel?                          Folie 21 von 40                          26....
Die Organisationen von OS Projekten undUnternehmen sind oft strukturell ähnlichRollen heißen anders, machen aber ähnliches...
Agiles Teams optimieren sich lokal                                Team                        Team                        ...
Agiles Teams optimieren sich lokalBeobachtungen•      dezentrale Repositories bilden die direkte       Kommunikation agile...
Next generation:                                                                                                          ...
Repositories ersetzen BranchesZentralisierte Verwaltung kann dezentral in anderenKategorien gehalten werden•      Integrat...
Skalierung: Am Linux Kernel arbeiteneinige tausend EntwicklerFakten aus dem Linux-Repository(git://git.kernel.org/pub/scm/...
Geografisch verteilte Entwicklung ist heutebei OS und der Industrie der RegelfallKlassische Lösung:•      Proxies, um Late...
Abkürzungen für geographisch verteilteagile Teams                Team                             Team              Reposi...
Wann kann man Dezentrales SCMeinsetzen?Bestehende SCM-Organisationen müssen ihreProzesse und Organisation anpassen.Je zent...
ZusammenfassungDezentrales SCM ist inzwischen soweit, dass man esprofessionell einsetzen kann. Eine agile Arbeitsweisewird...
FazitWenn dezentrales SCM zu Ihrer Organisation passt,nutzen Sie es – nicht nur Ihre Entwickler werden esIhnen danken!Agil...
Nächste SlideShare
Wird geladen in …5
×

Agiler durch dezentrale versionskontrolle (mit git) oop2012 alfert_antoni

1.322 Aufrufe

Veröffentlicht am

Vorstellung der flexiblen Einsatzmöglichkeiten der dezentralen Versionskontrolle. Am Beispiel von Git wird gezielt auf technische Details eingegangen.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.322
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
23
Aktionen
Geteilt
0
Downloads
7
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Was bedeutet agil? … In erster Linie bedeutet es schnell und flexibel auf neue Projektsituationen reagieren zu können.Neben dem agilen Entwicklungsprozess haben auch die eingesetzten Werkzeuge einen entscheidenden Einfluß.(Vorstellung)(In den nächsten 45 Minuten werden wir Ihnen die flexiblen Einsatzmöglichkeiten der dezentralen Versionskontrolle vorstellen. Am Beispiel von Git gehen wir gezielt auf technische Details ein.)
  • SCM manifestiert (zementiert) den Entwicklungsprozess & -organisation: Strukturen, Abläufe, Rechte, Architektur, usw.=> Flexibilität in Prozess & Organisation bedarf daher auch Flexibilität im SCM(Wir betrachten Agilität aus der Sicht des SCMs. Agilität verstehen wir im echten Wortsinne: beweglich, flexibel, schnell, usw.Konkrete Managementpraktiken sind hier unerheblich. )
  • Jede Branchfärbung kann zu einer Kategorie von Repositories werden  Schlankere Arbeitsmittel
  • => dezentrale SCM bietet mehr Flexibilität als zentrale Systeme
  • Agiler durch dezentrale versionskontrolle (mit git) oop2012 alfert_antoni

    1. 1. Agiler durch dezentraleVersionskontrolle (mit Git)Jonatan Antoni, Dr. Klaus Alfert Folie 1 von 40 26. Januar 2012 Klaus Alfert, Jonatan Antoni © Zühlke 2012
    2. 2. Viele Open-Source Projekte wechseln zurZeit ihre Versionsverwaltung. Warum?Agiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 2 von 40 © Zühlke 2012
    3. 3. Der Industrie-Standard:Zentrale Versionskontrolle TFS Team Concert MKS Integrity SVN PVCS perforce VSS Dimensions ClearCase Depot RCS Harvest CVS SCCSAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 3 von 40 © Zühlke 2012
    4. 4. Der Industrie-Standard:Zentrale Versionskontrolle Zentral Optimistisch? Repository Pessimistisch? commit branch commit merge checkout update Working Working Working Copy Copy CopyAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 4 von 40 © Zühlke 2012
    5. 5. Dezentrale Mercurial (hg) DarcsVersionskontrolle git BitKeeper BazaarDie neumodische Variante Folie 5 von 40 26. Januar 2012 Klaus Alfert, Jonatan Antoni © Zühlke 2012
    6. 6. Dezentrale Versionskontrolle (2)Mehrere Entwickler – ein gemeinsamesRepository Dezentral, 1:N Repository push pull clone Working Working commit Copy Copy branch merge Repository A Repository B logAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 6 von 40 © Zühlke 2012
    7. 7. Dezentrale Versionskontrolle (3)Mehrere Entwickler – mehrereRepositories Dezentral, M:N Repository Repository Repository push init push push pull pull clone Working Working Working commit Copy Copy Copy branch merge Repository A Repository B Repository C logAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 7 von 40 © Zühlke 2012
    8. 8. Das große Risiko:Unbeherrschbare Strukturen Working Copy Repository Working Working Copy Copy Repository Repository Working Working Copy Copy Repository Repository Working Copy RepositoryAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 8 von 40 © Zühlke 2012
    9. 9. Wie arbeitet Git? Folie 9 von 40 26. Januar 2012 Klaus Alfert, Jonatan Antoni © Zühlke 2012
    10. 10. Parallele Entwicklung mit Git C A B D F G Alice pull E clone pull D A B C F G Bob E clone pull D pull C F Charly A B E GAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 10 von 40 © Zühlke 2012
    11. 11. Beobachtungen• Viele kleine Commits• Automatische Branches• Automatische Merges• Vollständige Historie: erleichtert das Mergen erheblichAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 11 von 40 © Zühlke 2012
    12. 12. Am Anfang war das Repository… Public Repository tag commit branch clone push Working addcheckout Copy rm treemergebranch Index commit Private Repository blob blob init BobAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 12 von 40 © Zühlke 2012
    13. 13. …darin liegt die gesamte Historie. tag commit branch commit branch 25A3 1492 1123 SHA1 8675 tree cafe tree blob blob blob de7d feeb 10acAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 13 von 40 © Zühlke 2012
    14. 14. Git und Subversion:Koexistenz erlaubt Migrationspfade. Subversion Repository fetch fetch commit update dcommit dcommit Working Working Copy Copy Working push/pull Copy Bobs Alices Repository Repository Joe Bob AliceAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 14 von 40 © Zühlke 2012
    15. 15. Dezentrale Versionskontrolle –Warum will ich das?Fast alle Operationen sind lokal – Extrem schnell – Offline-Arbeiten – Feingranulare CommitsJeder hat eine Kopie des Repositories – Backups – Komplette Historie (GUIDs vs. Counter)Branching/Merging an der Tagesordnung – Branching ist schnell – Merging ist einfachKein zentrales Repository notwendig – Alle Repositories sind (technisch) gleichberechtigt – Jeder kann von jedem „klonen“Agiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 15 von 40 © Zühlke 2012
    16. 16. Organisation undtechnische KontrolleWie organisieren sich Open Source Projekte? Folie 16 von 40 26. Januar 2012 Klaus Alfert, Jonatan Antoni © Zühlke 2012
    17. 17. Organisation von Repositories undWorkflows (1) Kleinere OS Projekte Maintainer ContributorAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 17 von 40 © Zühlke 2012
    18. 18. Organisation von Repositories undWorkflows (1) Integration Manager Workflow Integration Repository Integrator EntwicklerAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 18 von 40 © Zühlke 2012
    19. 19. Organisation von Repositories undWorkflows (2) Größere OS Projekte Maintainer Committer ContributorAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 19 von 40 © Zühlke 2012
    20. 20. Organisation von Repositories undWorkflows (2) Diktator und Leutnant Workflow Integration Repository Diktator Leutnant EntwicklerAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 20 von 40 © Zühlke 2012
    21. 21. Dezentrales SCM imUnternehmenLohnt sich der Wechsel? Folie 21 von 40 26. Januar 2012 Klaus Alfert, Jonatan Antoni © Zühlke 2012
    22. 22. Die Organisationen von OS Projekten undUnternehmen sind oft strukturell ähnlichRollen heißen anders, machen aber ähnliches Release Manager, Chef-Architekt Integrator EntwicklerAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 22 von 40 © Zühlke 2012
    23. 23. Agiles Teams optimieren sich lokal Team Team Repository Repository Working Copy Repository Working Working Copy Copy Repository Repository Working Working Copy Copy Repository Repository Working Copy Repository © Zühlke 2012
    24. 24. Agiles Teams optimieren sich lokalBeobachtungen• dezentrale Repositories bilden die direkte Kommunikation agiler Teams ab• Teams können sich lokal optimieren• teamübergreifende Kollaboration wird gefördertKonsequenzen Die Werte des Manifestes der agilen Software Entwicklung sind grundlegend. Vertrauen in das Team ist wesentlich. Direkte Kommunikationswege sind Voraussetzung.Agiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 24 von 40 © Zühlke 2012
    25. 25. Next generation: Parallel-Entwicklung zu Stabilisierungs- Phase Stabilisierung I1501_TCOMMD23 Stabilisierung I1501_TCOMMU42_WXYZ Branch RI FI Stabilisierung I1501_TCOMMU42 I1501_TCOMMU23 RI FI Baseless Merge: Branch Möglich, aber nicht BM zu empfehlen! Stabilisierung Branch Branch I1501_TCOMMU01 RI FI Branch RI FI Stabilisierung I1501 Stabilisierung Stabilisierung IHSP_ Branch FI RI RI FI Stabilisierung Stabilisierung FI FI RI FI FI RI RI Reife für R12.1 Reife für HSP erreicht Release 23 erreicht Branch FI FI RI RI FI FI RI RI RI MSR1201 Branch Branch RI RI RI FI FI RI RI FI Branch GleichzeitigMUR1200S01 MUR1201S00 angelegt Branch Branch Branch Branch RI RI RI RI Release 12.0.1.0 Release 12.1.0.0 Release 12.1.0.1 Release 12.1.0.2 BranchRTM1200S01U00 RTM1201S00U00 RTM1201S00U01 RTM1201S00U02 RI R/O R/O R/O R/O Stabilisierung Stabilisierung Stabilisierung Stabilisierung Release 12.0.1.0 Release 12.1.0.0 Release 12.1.0.1 Release 12.1.0.2 Release 12.0.1.0-42 HSP Release 23 RTM1200S01U00P42 RTM1201HSP23 Kundenspezifischer R/O R/O Patch. Integration Entwicklung Patch- Fertigstellung
    26. 26. Repositories ersetzen BranchesZentralisierte Verwaltung kann dezentral in anderenKategorien gehalten werden• Integration Branches  Integration Repositories• Team/Features Branches  Team Repositories  Feature Branches innerhalb der Repositories• Release Branches  Release RepositoriesDie Nutzer sehen innerhalb ihrer Repositories nur dieBranches, die für ihren Kontext relevant sind.Agiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 26 von 40 © Zühlke 2012
    27. 27. Skalierung: Am Linux Kernel arbeiteneinige tausend EntwicklerFakten aus dem Linux-Repository(git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git, Stand 13.01.2012)Clone-Kommando:• Überträgt 460MiB, Dauer: ca. 15 MinutenWorking-Copy:• 516MB, ~40‘000 Dateien, 2373 OrdnerLokales Repository (.git-Verzeichnis):• 526 MB, 23 Dateien, 13 Ordner• 284.440 Commits, 11.618 Committer (seit 2005)• Kompletter(!) Short-Log über alle Commits: 10secAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 27 von 40 © Zühlke 2012
    28. 28. Geografisch verteilte Entwicklung ist heutebei OS und der Industrie der RegelfallKlassische Lösung:• Proxies, um Latenzen beim Lesen zu reduzieren• Schreibzugriffe in der Regel auf den zentralen ServerDezentral: Entkoppelte Repositories• Schneller lokaler Lese- und Schreibzugriff• Expliziter Datenaustausch mit anderen Repositories als Prozesselemente der ZusammenarbeitAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 28 von 40 © Zühlke 2012
    29. 29. Abkürzungen für geographisch verteilteagile Teams Team Team Repository Repository UK UK F DE CH DE © Zühlke 2012
    30. 30. Wann kann man Dezentrales SCMeinsetzen?Bestehende SCM-Organisationen müssen ihreProzesse und Organisation anpassen.Je zentralistischer und regulierter die bisherigenOrganisation, um so größer ist derAnpassungsaufwand (Tool vs. Organisation). Command & Control Team-orientierter Management-Stil Management-Stil Zentrales SCM Dezentrales SCMAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 30 von 40 © Zühlke 2012
    31. 31. ZusammenfassungDezentrales SCM ist inzwischen soweit, dass man esprofessionell einsetzen kann. Eine agile Arbeitsweisewird dadurch gefördert.Der Mehrwert ist:• Die Entwickler können spürbar schneller arbeiten: Alle aufwändigen SCM-Operationen sind lokal• Skalierung auch über segmentierte Netzwerkanbindung möglich (u.a. geogr. Verteilung)• Flexible Topologien von streng hierarchisch bis massiv kollaborativ (agil) möglichAgiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 31 von 40 © Zühlke 2012
    32. 32. FazitWenn dezentrales SCM zu Ihrer Organisation passt,nutzen Sie es – nicht nur Ihre Entwickler werden esIhnen danken!Agiler mit dezentraler Versionskontrolle (mit Git) | Klaus Alfert, Jonatan Antoni 26. Januar 2012 Folie 32 von 40 © Zühlke 2012

    ×