Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Branching-Strategien mit Mercurial

463 Aufrufe

Veröffentlicht am

Dieser Kurzvortrag geht der Frage nach, welche Branching-Strategien machbar, sinnvoll und empfehlenswert sind und wovon dies abhängig sein kann.

Diese Präsentation wurde mit Markdown und LaTeX-Beamer erstellt.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

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

Branching-Strategien mit Mercurial

  1. 1. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Das Problem der zwei K¨opfe Christoph J¨ungling Agile Monday, 5.5.2014 Das Problem der zwei K¨opfe 1
  2. 2. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Figure: Zwei K¨opfe Das Problem der zwei K¨opfe 2
  3. 3. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor In vier Teile, jedes St¨uck Wie ein kleiner Finger dick. Das Problem der zwei K¨opfe 3
  4. 4. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Die Theorie Das Problem der zwei K¨opfe 4
  5. 5. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Feature-Branch-Strategien in Agilen Teams Regeln 1. Tu es nicht! 2. Wenn es doch sein muss, halte die Branches kurz (zeitlich)! 3. Wenn sie doch l¨anger leben, merge h¨aufig aus dem Default Branch in den Feature Branch! Das Problem der zwei K¨opfe 5
  6. 6. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Gr¨unde Parallel Features entwickeln und Bugs fixen Verschiedene Entwickler(gruppen) arbeiten an verschiedenen Aufgaben “Late Binding” Sp¨ate Entscheidung, welches Feature in den Hauptzweig eingeht Definition of Done! Das Problem der zwei K¨opfe 6
  7. 7. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Begriffe DVCS: Distributed Version Control System Repository: Enth¨alt die komplette Historie der Entwicklung Clone: Komplette Kopie des Repositories (eigentlich auch “nur” ein Repository) Branch: (dt. “Zweig”) Paralleler Entwicklungszweig Benannter Branch: Branch mit einem Namen (darf gepusht werden) Unbenannter Branch: Zweiter Kopf auf dem “Default Branch” (push nicht ohne weiteres m¨oglich) Rebase: “aufsetzen” eines Zweiges auf einen Kopf (Achtung: Neuberechnung der Hashwerte) Das Problem der zwei K¨opfe 7
  8. 8. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Branching is easy, merging is pain Die Unix-Tools diff und patch ¨ubernehmen die Arbeit im Hintergrund. Sie arbeiten zeilenweise. Das Zusammenf¨uhren (Mergen) ist leicht bei ¨Anderungen an verschiedenen Stellen einer Datei bei ¨Anderungen in verschiedenen Dateien → Automatisches Mergen m¨oglich oder aber schwer bei ¨Anderungen an der selben Stelle → Automatisches Mergen nicht m¨oglich Das Problem der zwei K¨opfe 8
  9. 9. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Branching is easy, merging is pain Erkenntnis: Es muss m¨oglichst verhindert werden, dass ¨Anderungen von mehreren Leuten an den selben Code-Stellen gemacht werden (m¨ussen)! Folgerung: Der Aufbau der Software hat einen entscheidenden Einfluss! Denn je h¨aufiger gleiche Stellen von verschiedenen Leuten bearbeitet werden m¨ussen, desto h¨aufiger wird es Merge-Konflikte geben. Das Problem der zwei K¨opfe 9
  10. 10. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Gegenseitiges Testen Nichts gelangt auf das Master-Repository, solange es nicht getestet ist Zusammenf¨uhrung und Test auf einem Clone Notwendige Korrekturen auf dem Clone R¨uckf¨uhrung der Korrekturen in das Arbeits-Repository via Export/Unbundle Clone l¨oschen Das Problem der zwei K¨opfe 10
  11. 11. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Das Problem der zwei K¨opfe 11
  12. 12. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Das Problem der zwei K¨opfe 12
  13. 13. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Das Problem der zwei K¨opfe 13
  14. 14. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Ziele Software modular gestalten “Separation of concerns” Test first — Test Driven Development Das Problem der zwei K¨opfe 14
  15. 15. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Agil ist agil ist agil Das Problem der zwei K¨opfe 15
  16. 16. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Branchen ist unn¨otig Agile Entwicklung Entweder: Es gibt nur kleine Tasks Oder: Das Team arbeitet immer gemeinsam an einer Task Es gibt nur diesen einen Branch Es passiert w¨ahrenddessen nichts auf dem Default Branch → Keine Merge-Konflikte bei R¨uckf¨uhrung in den Default Branch Das Problem der zwei K¨opfe 16
  17. 17. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor L¨osungsans¨atze Software m¨oglichst modular aufbauen und halten Mergekonflikte werden immer gemeinsam von denen gel¨ost, die an der Stelle gearbeitet haben Das Problem der zwei K¨opfe 17
  18. 18. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Software-Empfehlung TortoiseHg kdiff3: 3-Way-Merge, Folder-Diff, Version-Diff Das Problem der zwei K¨opfe 18
  19. 19. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Merge-Ablauf Das Problem der zwei K¨opfe 19
  20. 20. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Das Problem der zwei K¨opfe 20
  21. 21. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Das Problem der zwei K¨opfe 21
  22. 22. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Das Problem der zwei K¨opfe 22
  23. 23. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Das Problem der zwei K¨opfe 23
  24. 24. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Das Problem der zwei K¨opfe 24
  25. 25. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Das Problem der zwei K¨opfe 25
  26. 26. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Das Problem der zwei K¨opfe 26
  27. 27. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Patricks Fragen Das Problem der zwei K¨opfe 27
  28. 28. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor “Sollte nicht nach jedem Commit . . . ?” Ein Commit in einem dVCS (Hg, Git) ist nicht gleichbedeutend mit einem solchen in einem cVCS (Svn, Tfs)! Mercurial Commit = lokal Push = zum Server Das Problem der zwei K¨opfe 28
  29. 29. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Mehrere parallele Feature-Branchs Integration auf einem Clone, der nach dem I-Test gel¨oscht wird Dies kann auf einem separaten Rechner geschehen Verantwortungsbereich der Testabteilung? Das Problem der zwei K¨opfe 29
  30. 30. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Autor Das Problem der zwei K¨opfe 30
  31. 31. Das Problem der zwei K¨opfe Christoph J¨ungling Die Theorie Agil ist agil ist agil Merge-Ablauf Patricks Fragen Autor Autor Christoph J¨ungling Twitter: @chjuengling Homepage: www.juengling-edv.de Das Problem der zwei K¨opfe 31

×