2016-12-05 1 views
1

TLDR; Die SVN-Verzweigungsstrategie meines Teams wird nicht an einen Stamm zurückgegeben. Das fühlt sich an wie ein Anti-Pattern, ich kann nicht sofort erklären warum. Ist das ein Problem, und sind diese Probleme groß genug, um auf Veränderungen zu drängen?Welche Vorteile verliere ich, wenn ich die Versionszweige nicht wieder an Trunk anschließe?

Details-

Mein Team die vereinbarte Strategie Verzweigungs monatliche Veröffentlichung Filialen zu erstellen. Releases werden gehandhabt, indem eine .ear-Datei an ein anderes Team zur Bereitstellung übergeben wird - ohne sie auf unser SVN-Repository zu verweisen.

Wir behalten ein Tag des letzten Commits, bevor wir in die Produktion jedes Zweigs gehen, um es später zu verwenden. Wir bauen täglich eine Entwicklungsumgebung auf, um breakende Builds zu fangen.

Aber wenn wir eine Verzweigung für die nächste Version erstellen, verzweigen wir von der bestehenden Release-Branch - Und nie wieder zurück zu oder interagieren mit Trunk. Änderungen nach der Verzweigung an der Verzweigungsfreigabe werden zusammengeführt, bis die vorherige Freigabe abgeschlossen ist.

Trunk 
|\ 
| April 
|  \ 
|  May 
.   \ 
.   June... 
. 
. 

Wir haben Probleme mit Projekt Filialen haben, die in die Veröffentlichung verschmolzen werden sie zu erwarten sind in ausrollen.

Wir Feature Zweige nicht verwenden, so ein Rollback oder Änderungen von einem Release zu entfernen ist ein Ärgernis, da jeder Release Branch sowohl der Dev- als auch der Bug-Fix-Zweig ist.

Gibt es außer diesen grundlegenden SVN-Funktionen auch Auswirkungen auf diese Verzweigungsstrategie, Auswirkungen auf das Repository oder andere Risiken?

+0

warum verzweigen Sie überhaupt:

in diesem Online-Buch Schauen Sie, ich habe es nützlich gefunden? Sie könnten die Arbeit speichern und nur auf Stamm entwickeln. Was machst du am Kofferraum? –

Antwort

0

Wie Sie bereits gesagt haben, könnte ich mir vorstellen, dass das "Zurückrollen oder Entfernen von Änderungen aus einem Release ein Ärgernis ist", aber immer noch machbar.

Sie werden wertvolle Zeit verlieren, wenn Sie neue Entwickler mit diesem SVN-Setup einstellen. Sie werden es schwerer haben, dieses Repository zu erlernen, beizusteuern und zu beheben. Genauso wie es wichtig ist, lesbaren Code zu haben, ist es wichtig, ein lesbares Repository zu haben.

Wenn Ihr Team Probleme mit dem Repository hat, wird es schwieriger sein, externe Ratschläge von Büchern, Websites und anderen Personen einzuholen.

Wenn Sie irgendeine Art von Drittanbieter-Software in Ihr Repository integrieren möchten, kann es schwierig sein, da die SVN-Konvention der Verwendung eines Trunks ignoriert wurde.

Ihre Repository-Organisation scheint durch die monatliche Kadenz ungünstig eingeschränkt zu sein. Was, wenn Sie in einem Monat zwei Code-Rollen machen müssen? Erstellen Sie Halbmonatszweige?

Ihrem Team fehlt das Konzept der SVN-Tags. Tags sind finalisierte Versionen, die nicht bearbeitet werden sollen. Diese Tags haben normalerweise Versionsnummern wie Application-1.2.3. Die Versionsnummern sind ein Tripel von ganzen Zahlen: MAJOR.MINOR.PATCH. Dies zeigt Entwicklern, wie groß die Änderung in der Anwendung war und wie stark sich eine Version von der anderen unterscheidet.
http://svnbook.red-bean.com/en/1.8/svn.basic.html

Verwandte Themen