Trunk-Based Development ist ein Modell, in dem alle Arbeit täglich in einen einzigen Hauptzweig läuft. Abzweigungen gibt es, aber sie leben Stunden bis einen Tag und nicht Wochen.
- Trunk-Based Development
Ein Modell, in dem alle Arbeit täglich in einen einzigen Hauptzweig läuft.
Beispiel: „Im Trunk-Based Development lag kein Zweig länger als einen Tag offen.“Trunk heißt Stamm und meint den Hauptzweig, bei Git üblicherweise main. Das Modell ist die Grundlage der laufenden Auslieferung und wird von den großen Anbietern so betrieben.
Abgrenzung zu Git-Flow: Dieses hält zwei dauerhafte Linien und sammelt Änderungen in Release-Zweigen. Hier gibt es eine Linie.
Wie Trunk-Based Development abläuft
In kleinen Schritten. Eine Änderung wird so zugeschnitten, dass sie an einem Tag fertig wird, läuft durch die Prüfung der Pipeline und landet noch am selben Tag im Hauptzweig, der jederzeit auslieferbar bleibt.
Halbfertiges geht dabei abgeschaltet mit nach außen. Der Schalter dafür ist ein Feature Flag, siehe Feature Flag.
Was Trunk-Based Development voraussetzt
Prüfungen, die jemand ernst nimmt. Wenn jede Änderung sofort im Hauptzweig steht, trägt allein die Pipeline die Last der Qualitätssicherung, und ein rot bleibender Test hält das ganze Team auf.
Dazu kommt die Gewohnheit, Arbeit zu zerlegen. Eine Funktion in fünf Schritten ist mehr Planung als eine in einem Stück und spart die Zusammenführung am Ende.
Warum lange Zweige teuer sind
Weil der Abstand zum Hauptzweig mit jedem Tag wächst. Nach drei Wochen ist die Zusammenführung ein eigenes Projekt, in dem Änderungen aufeinandertreffen, die niemand mehr im Kopf hat.
Dazu kommt das Risiko im Dunkeln: Code, der drei Wochen allein lief, ist drei Wochen nicht gegen den Stand der anderen geprüft worden. Der Fehler zeigt sich dann genau am Tag der Zusammenführung.