Branching-Strategien mit Mercurial

Preview:

DESCRIPTION

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.

Citation preview

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Das Problem der zwei Kopfe

Christoph Jungling

Agile Monday, 5.5.2014

Das Problem der zwei Kopfe 1

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Figure: Zwei Kopfe

Das Problem der zwei Kopfe 2

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

In vier Teile, jedes StuckWie ein kleiner Finger dick.

Das Problem der zwei Kopfe 3

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Die Theorie

Das Problem der zwei Kopfe 4

Das Problem derzwei Kopfe

Christoph Jungling

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 langer leben, merge haufig aus demDefault Branch in den Feature Branch!

Das Problem der zwei Kopfe 5

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Grunde

I Parallel Features entwickeln und Bugs fixen

I Verschiedene Entwickler(gruppen) arbeiten anverschiedenen Aufgaben

I “Late Binding”

I Spate Entscheidung, welches Feature in den Hauptzweigeingeht

I Definition of Done!

Das Problem der zwei Kopfe 6

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Begriffe

I DVCS: Distributed Version Control SystemI Repository: Enthalt die komplette Historie der

EntwicklungI Clone: Komplette Kopie des Repositories (eigentlich

auch “nur” ein Repository)I Branch: (dt. “Zweig”) Paralleler EntwicklungszweigI Benannter Branch: Branch mit einem Namen (darf

gepusht werden)I Unbenannter Branch: Zweiter Kopf auf dem “Default

Branch” (push nicht ohne weiteres moglich)I Rebase: “aufsetzen” eines Zweiges auf einen Kopf

(Achtung: Neuberechnung der Hashwerte)

Das Problem der zwei Kopfe 7

Das Problem derzwei Kopfe

Christoph Jungling

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 imHintergrund. Sie arbeiten zeilenweise.

Das Zusammenfuhren (Mergen) ist leicht

I bei Anderungen an verschiedenen Stellen einer DateiI bei Anderungen in verschiedenen DateienI → Automatisches Mergen moglich

oder aber schwer

I bei Anderungen an der selben StelleI → Automatisches Mergen nicht moglich

Das Problem der zwei Kopfe 8

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Branching is easy, merging is pain

Erkenntnis:

I Es muss moglichst verhindert werden, dass Anderungenvon mehreren Leuten an den selben Code-Stellengemacht werden (mussen)!

Folgerung:

I Der Aufbau der Software hat einen entscheidendenEinfluss!

I Denn je haufiger gleiche Stellen von verschiedenenLeuten bearbeitet werden mussen, desto haufiger wirdes Merge-Konflikte geben.

Das Problem der zwei Kopfe 9

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Gegenseitiges Testen

I Nichts gelangt auf das Master-Repository, solange esnicht getestet ist

I Zusammenfuhrung und Test auf einem CloneI Notwendige Korrekturen auf dem CloneI Ruckfuhrung der Korrekturen in das Arbeits-Repository

via Export/UnbundleI Clone loschen

Das Problem der zwei Kopfe 10

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Das Problem der zwei Kopfe 11

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Das Problem der zwei Kopfe 12

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Das Problem der zwei Kopfe 13

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Ziele

I Software modular gestaltenI “Separation of concerns”I Test first — Test Driven Development

Das Problem der zwei Kopfe 14

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Agil ist agil ist agil

Das Problem der zwei Kopfe 15

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Branchen ist unnotig

Agile Entwicklung

I Entweder: Es gibt nur kleine TasksI Oder: Das Team arbeitet immer gemeinsam an einer

TaskI Es gibt nur diesen einen BranchI Es passiert wahrenddessen nichts auf dem Default

Branch

→ Keine Merge-Konflikte bei Ruckfuhrung in den DefaultBranch

Das Problem der zwei Kopfe 16

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Losungsansatze

I Software moglichst modular aufbauen und haltenI Mergekonflikte werden immer gemeinsam von denen

gelost, die an der Stelle gearbeitet haben

Das Problem der zwei Kopfe 17

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Software-Empfehlung

I TortoiseHgI kdiff3: 3-Way-Merge, Folder-Diff, Version-Diff

Das Problem der zwei Kopfe 18

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Merge-Ablauf

Das Problem der zwei Kopfe 19

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Das Problem der zwei Kopfe 20

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Das Problem der zwei Kopfe 21

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Das Problem der zwei Kopfe 22

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Das Problem der zwei Kopfe 23

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Das Problem der zwei Kopfe 24

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Das Problem der zwei Kopfe 25

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Das Problem der zwei Kopfe 26

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Patricks Fragen

Das Problem der zwei Kopfe 27

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

“Sollte nicht nach jedem Commit . . . ?”

I Ein Commit in einem dVCS (Hg, Git) ist nichtgleichbedeutend mit einem solchen in einem cVCS (Svn,Tfs)!

I Mercurial

I Commit = lokalI Push = zum Server

Das Problem der zwei Kopfe 28

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Mehrere parallele Feature-Branchs

I Integration auf einem Clone, der nach dem I-Testgeloscht wird

I Dies kann auf einem separaten Rechner geschehenI Verantwortungsbereich der Testabteilung?

Das Problem der zwei Kopfe 29

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Autor

Das Problem der zwei Kopfe 30

Das Problem derzwei Kopfe

Christoph Jungling

Die Theorie

Agil ist agil ist agil

Merge-Ablauf

Patricks Fragen

Autor

Autor

I Christoph JunglingI Twitter: @chjuenglingI Homepage: www.juengling-edv.de

Das Problem der zwei Kopfe 31

Recommended