Wenn wir in Subversion nur mit einem Zweig arbeiten, sollten wir uns dann überhaupt darum kümmern? Können wir nicht einfach am Kofferraum arbeiten, um die Dinge zu beschleunigen?
So entwickeln wir uns mit Subversion:
- Es gibt einen Kofferraum
- Wir machen einen neuen Entwicklungszweig
- Wir entwickeln eine neue Funktion für diesen Zweig
- Wenn das Feature fertig ist, wird es im Trunk zusammengeführt, der Zweig wird entfernt und ein neuer Entwicklungszweig wird aus dem Trunk erstellt
Wenn wir für die Produktion freigeben möchten, erstellen wir ein Tag aus dem Kofferraum. Bugfixes werden für einen Zweig dieses Tags vorgenommen. Dieser Bugfix wird dann im Trunk zusammengeführt.
Aus diesem Grund erstellen wir nach Fertigstellung eines Features einen neuen Entwicklungszweig. Auf diese Weise wird der Bugfix früh genug in unseren neuen Code aufgenommen.
Unten ist ein Diagramm, das verdeutlichen sollte:
Nun gibt es das Gefühl, dass dies nicht die effizienteste Arbeitsweise ist. Wir bauen vor Ort, bevor wir uns verpflichten, was ungefähr 5-10 Minuten dauert. Sie können verstehen, dass dies eine ziemlich lange Wartezeit ist.
Die Idee eines Entwicklungszweigs ist, dass der Trunk immer Release-fähig ist. Dies gilt jedoch nicht mehr für unsere Situation. Manchmal ist eine Funktion fast fertig, und einige Entwickler beginnen bereits mit der Codierung der nächsten Funktion (andernfalls warten sie darauf, dass ein oder zwei Entwickler fertig sind und zusammengeführt werden).
Wenn Feature 1 beendet ist, wird es in den Trunk eingefügt, wobei jedoch einige Commits von Feature 2 enthalten sind.
Sollten wir uns also überhaupt mit dem Entwicklungszweig beschäftigen, da wir immer nur einen Zweig haben? Ich habe über stammbasierte Entwicklung und Verzweigung nach Abstraktion gelesen, aber die meisten Artikel, die ich gefunden habe, konzentrieren sich auf den Teil Verzweigung nach Abstraktion. Ich habe den Eindruck, dass es sich um große Änderungen handelt, die sich über mehrere Veröffentlichungen erstrecken werden. Dies ist kein Problem, das wir haben.
Was denken Sie? Können wir nur am Kofferraum arbeiten? Das schlimmste Szenario ist (glaube ich), dass wir ein Tag aus dem Kofferraum erstellen und die benötigten Commits auswählen müssen, da einige Commits / Funktionen noch nicht produktionsbereit sind.