Contao-News

Wir informieren Dich hier regelmäßig zu Updates, stellen Best-Practice-Arbeiten vor und berichten über Aktuelles aus dem Contaoversum.

Git-Branch-Strategie

von Leo Feyer – Aus der Praxis

Im gestrigen Meeting der Arbeitsgruppe "Core-Entwicklung" haben wir unter anderem entschieden, unsere Git-Branch-Strategie zu ändern. Wer mit dem Contao-GitHub-Repository arbeitet, sollte dies daher lesen.

Branching-Modell

Unsere verbesserte Branch-Strategie folgt im Wesentlichen dem Branching-Modell von Vincent Driessen, außer dass wir einen dritten infiniten Zweig namens "lts" für die Contao-Long-Term-Support-Versionen haben.

  • master: für den produktiven Einsatz geeignet
  • develop: aktuelle Entwicklungsversion
  • lts: Long-Term-Support-Versionen, ebenfalls für den produktiven Einsatz geeignet

Neben diesen infiniten Zweigen haben wir beschlossen, Feature-Zweige für alle Änderungen anzulegen, die mehr als einen Commit benötigen. Dadurch sollen die Änderungen besser nachvollziehbar und ge­ge­be­nen­falls zurücknehmbar sein.

Änderung des GitHub-Repository

Das Übernehmen des Branching-Modells beinhaltet auch die Umbenennung der bestehenden Zweige des Contao-GitHub-Repository. Der "master"-Zweig wird in "develop" umbenannt und der "2.11.x"-Zweig wird in "master" umbenannt und nach "lts" kopiert.

Wenn eine Installation auf dem GitHub-Repository basiert – vermutlich auf dem "2.11.x"-Zweig – müssen die Änderungen im lokalen Repository entsprechend nachvollzogen werden.

Alle News anzeigen

Kommentare

Kommentar von xchs |

Könnte man die drei Hauptentwicklungszweige nicht auch noch mit einem zusätzlichen Präfix "core" (o.ä.) versehen? Für die Feature-Branches würde sich ja passenderweise der Präfix "feature" anbieten:

  • core-develop
  • core-lts
  • core-master
  • feature-bar
  • feature-baz
  • feature-foo
  • feature-global-content-elements
  • feature-hotfix-2.11.5
  • feature-personal-data-callbacks
  • feature-qux
  • ...

Das hätte den Vorteil, dass diese drei Hauptentwicklungszweige in der Auswahlliste auf GitHub stets gruppiert bzw. sortiert von etwaigen weiteren Feature-Branches aufscheinen und sich in der Liste nicht irgendwo beliebig unter den anderen Feature-Branches einordnen.

Ich würd's halt gut finden, wenn diese drei Zweige in der Liste ganz oben auftauchten, damit man sie schnell im Blick hat und einfach zwischen den drei switchen kann. So wie es aktuell ist, würden sich diese drei Zweige stets alphabetisch in der Liste einsortieren; für einen Branch-Wechsel müsste man sie also jedesmal unter den ganzen anderen Feature-Branches in der Liste heraussuchen.

Den Default-Branch könnte man ja trotzdem unter "Admin" -> "Settings" -> "Default Branch" einstellen.

Antwort von Leo Feyer

Ich hatte ganz am Anfang die Feature-Zweige mit dem Präfix "feature-" versehen, wurde aber schnell darauf hingewiesen, dass dies nicht den Vorgaben entspricht. Es gibt nur zwei Präfixe, nämlich "hotfix-" und "release-". Die Hauptzweige sowie die Feature-Zweige sind ohne Präfix.

Wenn wir schon Gitflow übernehmen, müssen wir uns auch an deren Konventionen halten, da die Tools sonst nicht funktionieren.

––– NACHTRAG –––

Ich habe heute git-flow aktualisiert und in der Standardkonfiguration gibt es doch ein "feature"-Präfix. Allerdings werden sämtliche Präfixe mit einem Schrägstrich abgeschlossen (also "feature/", "release/" und "hotfix/") anstatt mit einem Bindestrich, was ich entsprechend in das zentrale Git-Repository übernommen habe.

Einen Kommentar schreiben

Bitte addieren Sie 2 und 5.