Skip to content

Entwickler: Versionsverwaltungssystem

Jan Böhmer edited this page Aug 28, 2017 · 4 revisions

Versionsverwaltungssystem

Zur Versionsverwaltung verwendeten wir bis August 2013 Subversion, das Repository befand sich auf Google Code. Seit September 2013 setzen wir Git ein, das Repository befindet sich jetzt auf Github. Für den Umgang mit Git haben wir ein paar Regeln aufgestellt, die hier erläutert werden sollen.

Part-DB Versionen

Für die Versionsbezeichnungen verwenden wir das Schema "major.minor.update", z.B. "0.3.2". Die erste Zahl bezeichnet die Hauptversion, die zweite Zahl die Unterversion, die dritte das Update. Eine Unterversion (z.B. "0.3") bekommt KEINE neuen Features mehr, sondern nur noch Bugfixes. Heisst also, die Version "0.3.99" hat immer genau die gleichen Funktionen wie die Version "0.3.0". Gibt es für eine Unterversion keine Bugfixes, kommt z.B. nach der "0.3.0" direkt die Version "0.4.0".

Der Master-Branch

Im Branch "master" wir jeweils nur an einer ganz bestimmten Unterversion gearbeitet. Neue Funktionen, die nicht in dieser Unterversion landen sollen, werden in einem separaten Branch implementiert. Erst wenn der master die gewünschte Version enthält, wird dieser Branch in den master übernommen.

Branches für veröffentlichte Versionen

Sobald im master eine neue Version fertiggestellt und getestet wurde, wird ein neuer Branch für diese Version angelegt: git branch Part-DB-0.3.x (Branch "Part-DB-0.3.x" anlegen) git checkout Part-DB-0.3.x (In den Branch "Part-DB-0.3.x" wechseln) git add/commit/... (Änderungen am neuen Branch durchführen und commiten) git push origin Part-DB-0.3.x (Den neuen Branch auf GitHub hochladen)

Das Namensschema dieser Branches ist immer "Part-DB-0.3.x" (Branch für die Unterversion "0.3"). Jegliche Commits, die ab nun im master getätigt werden, müssen zwingend auch in diesen neuen Branch übernommen werden!

git checkout Part-DB-0.3.x (In den Branch "Part-DB-0.3.x" wechseln) git merge master ("master" in den Branch "Part-DB-0.3.x" mergen)

Niemals soll ein Commit direkt in einen solchen Release-Branch getätigt werden, das bringt nur den "working flow" durcheinander!

Clone this wiki locally