0

Ich verwende VSTS für Quellcodeverwaltung, CI und Release Management Ich versuche, Code nur einmal und nicht pro Umgebung oder Zweig zu erstellen. Die Freigabe-Pipeline ist: Dev -> QA -> PRODVSTS: Branch and Merge Bester Ansatz für Entwicklung - QS - Produktion

Ich habe nur einen Zweig oder codbase, wo das Team die Änderungen festschreiben. Das CI löst einen Build aus, wenn der gesamte Code für einen Fix bereit ist. Ich erstelle eine Freigabe und befördere sie durch die Pipeline bis zur Bereitstellung in der Produktion.

Ich muss wissen, ob der eine Branch für uns in Ordnung sein wird, also wenn wir einige Fehler beheben oder ein neues Feature erstellen wollen, indem wir einfach einen Unterzweig erstellen und den Code täglich an den Master Branch übergeben.

Ich versuche zu vermeiden, drei Zweige für jede Umgebung zu verwenden. Ich denke, dass CI und Release Management uns die Möglichkeit geben, Releases von früheren Builds zu erstellen.

Also, was ist Cons und Pros beider Ansätze (3 Zweige oder nur ein Master Branch) in meinem Fall?

Antwort

1

Normalerweise sollte nur eine Verzweigung für eine Release-Pipeline vorhanden sein. Sie können mehrere Umgebungen in einer Pipeline haben, aber die für sie bereitgestellte Version sollte dieselbe sein, da die Release-Pipeline einen Prozess widerspiegelt, der zeigt, wie Ihre Software nach dem Build endgültig freigegeben wurde. Zum Beispiel wird die Version zuerst in der QA-Umgebung zum Testen bereitgestellt und kann erst dann auf den Produktionsserver bereitgestellt werden, nachdem die Tests in der QA-Umgebung bestanden wurden. Es macht keinen Sinn, dass QA den Aufbau eines Zweiges und Prod den Aufbau eines anderen Zweigs verwenden. Sie können auf diesen Link für Details verweisen: Where to deploy? Environments in Microsoft Release Management.

Und für die Branche geht es um Ihren Entwicklungsprozess. Hier sind einige Vorschläge von MSDN zu Ihrer Referenz:

Wann sollte das Team einen Zweig hinzufügen?

Sie sollten Niederlassungen in den folgenden Situationen schaffen:

  • Wenn Sie Code auf einem anderen Zeitplan/Zyklus als die bestehenden Filialen freigeben müssen.

  • Wenn Ihr Code eine andere Branchenrichtlinie erfordert. Wenn Sie einen neuen Zweig mit der neuen Richtlinie erstellen, können Sie Ihrem Projekt einen strategischen Wert hinzufügen.

  • Wenn die Funktionalität für einen Kunden freigegeben wird und Ihr Team plant, Änderungen vorzunehmen, die sich nicht auf den geplanten Veröffentlichungszyklus auswirken.

Sie sollten keine Verzweigung für jede User Story erstellen, da es Kosten eine hohe Integration schafft. Obwohl Team Foundation Server die Verzweigung vereinfacht, kann der Aufwand für die Verwaltung von Verzweigungen erheblich werden, wenn Sie viele Zweige haben.

prüft Link für Details: Branch strategically

+0

Was passiert, wenn Sie einen Release haben, die in QA, aber dann müssen Sie eine Produktion Fehler beheben? –

2

Sie benötigen keinen Zweig pro Umgebung, aber Sie müssen sich einige Fragen zu Ihrem Entwicklungsprozess stellen.

Wie oft veröffentlichen Sie neue Funktionen? Haben Sie umfassende Unit-, Integrations-, Regressions- und Benutzerakzeptanztests, die vollständig automatisiert sind und bei jedem Check-in ausgeführt werden?

Wenn Sie neue Funktionen entwickeln und nicht über eine ganze Reihe toller automatisierter Tests verfügen, benötigen Sie wahrscheinlich mindestens einen weiteren Zweig. 1 um neue Funktionen zu entwickeln und 1 um die Live-Code-Basis zu unterstützen. Lies die ALM Rangers branching guidance und geh von dort.

Verwandte Themen