Die einfachste und üblichste Art, Verzweigung zu sehen, ist aus zwei Gründen. Trunk und Release. Ich denke, das ist bekannt als die Philosophie "Instabiler Stamm, stabiler Zweig".
Stamm ist Ihre Hauptquelle. Dieses enthält den "neuesten und größten" Code und ist zukunftsorientiert. Es ist im Allgemeinen nicht immer stabil.
Release ist eine Eins-zu-viele-Verbindung mit Trunk. Es gibt einen Trunk, aber viele Releases, die vom Trunk stammen. Releases beginnen in der Regel mit einem Zweig des Trunks, sobald ein bestimmter Funktions-Meilenstein erreicht wurde, so dass die "einzigen" Dinge, die für eine bestimmte Implementierung übrig bleiben, nur Fehlerbehebungen sein sollten. Dann verzweigen Sie den Stamm, geben Sie ihm ein Label (z. B. 1.6 Release ist unser derzeitiges Release), erstellen und senden Sie das Release an QA.Wir drücken auch die Versionsnummer (normalerweise die Minor-Nummer) des Trunks an diesem Punkt, um sicherzustellen, dass wir nicht zwei Releases mit derselben Nummer haben.
Dann beginnen Sie den Testzyklus auf Ihrem Release-Zweig. Wenn genügend Tests durchgeführt wurden, wenden Sie Fehlerkorrekturen auf den Versionszweig an, führen diese zurück zum Stamm (um sicherzustellen, dass Bugfixes weitergeführt werden!) Und geben dann einen Build des Zweigs erneut frei. Dieser Zyklus mit QA setzt sich fort, bis Sie beide glücklich sind und die Freigabe schließlich dem Kunden (den Kunden) gegeben wird. Alle Fehlerberichte von den Kunden, die genau sind (d. H. Sie sind ein Fehler!), Starten einen weiteren QA-Zyklus mit der fraglichen Verzweigung.
Wenn Sie zukünftige Versionen erstellen, ist es eine gute Idee, auch ältere Kunden auf neuere Zweigstellen zu verschieben, um die potentielle Anzahl von Verzweigungen zu reduzieren, in die Sie einen Fehler beheben können.
Mit dieser Technik können Sie Lösungen mit Ihrer Technologie für eine Vielzahl von Kunden bereitstellen, die unterschiedliche Service-Levels erfordern (beginnend mit mindestens dem ersten). Sie können Ihre vorhandenen Bereitstellungen von "gefährlichem" neuem Code im Stamm und dem Schlimmsten isolieren Zusammenführungsszenario ist ein Zweig.
Ich bin völlig "keine Junk-in-the-trunk" für die Beschreibung unserer MAIN-Zweig. Genial. –
Ich werde darüber nachlesen, aber ich verstehe es nicht nur das Bild, vor allem, wenn Sie sagen: "kein Müll im Kofferraum". Wer testet den Kofferraum? Soweit ich das beurteilen kann, legt dieses Muster das Gegenteil nahe, da niemand hauptsächlich den Stamm für Dev oder Test verwendet .... – Quibblesome
@Quibblesome - Muster sagt, dass es für die Freigabe passend sein muss, bevor es in den Stamm und stark verschmolz schlägt vor, dass nach dem Zusammenführen der Zweig und der Stamm identisch sein werden .. – Murph