Freigeben über


Strategische Verzweigung

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Quellcode ist eine wichtige Ressource in Ihrem Entwicklungsaufwand. Es kann jedoch eine Herausforderung sein, Quelldateien effektiv zu verwalten und zu entwickeln, wenn mehrere Entwickler gleichzeitig an Dateiupdates arbeiten. Sie können ein Versionssteuerungssystem verwenden, um Quellcode in freigegebenen Repositorys zu speichern, parallele Entwicklungsbemühungen zu isolieren, Codeänderungen zu integrieren und frühere Dateiversionen wiederherzustellen. Ein Schlüsselelement in der Versionssteuerung ist Verzweigung, die die gleichzeitige Entwicklung ermöglicht. Wenn Sie strategisch verzweigen, können Sie die Reihenfolge und Konsistenz mehrerer Versionen Ihrer Software beibehalten.

Team Foundation bietet ein flexibles und zuverlässiges Versionskontrollsystem. Sie können die Versionskontrolle von Team Foundation verwenden, um während der Entwicklung von Quellcode, Dokumenten, Arbeitsaufgaben und anderen wichtigen Informationen, die von Ihrem Team bearbeitet werden, mehrere Überarbeitungen zu verwalten.

Wie verwaltet Ihr Team Code, während mehrere Änderungen gleichzeitig durch mehrere Projektversionen eingeführt werden?

Wenn Sie mit einem Versionssteuerungssystem arbeiten, müssen Sie überlegen, wie Sie eine Verzweigungsstruktur einrichten. Sie können eine Verzweigung erstellen, indem Sie die Quellcodedatei spiegeln. Anschließend können Sie die Verzweigung ändern, ohne dass sich dies auf die Quelle auswirkt. Wie die Verzweigungsstruktur in der folgenden Abbildung zeigt, enthält die MAIN-Verzweigung beispielsweise abgeschlossene Funktionen, die Integrationstests bestanden haben, und die DEVELOPMENT-Verzweigung enthält den Code, der gerade erstellt wird. Wenn eine neue Funktionalität im DEVELOPMENT Branch abgeschlossen ist und Integrationstests bestehen kann, können Sie den Code von der DEVELOPMENT-Verzweigung in die MAIN-Verzweigung höher stufen. Dieser Prozess wird als Reverseintegration bezeichnet. Wenn Sie hingegen den Code aus der MAIN-Verzweigung mit der DEVELOPMENT-Verzweigung zusammenführen, wird der Prozess als Forward Integration bezeichnet.

Hauptzweig
Weitere Informationen zum Erstellen und Zusammenführen von Codezweigen finden Sie auf der CodePlex-Website auf der CodePlex-Website: Team Foundation Server Branching Guide 2.0.

Verzweigung und Zusammenführung beinhalten die folgenden Grundsätze:

  1. Jede Verzweigung muss über eine definierte Richtlinie zum Integrieren von Code in diese Verzweigung verfügen. Beispielsweise können Sie in der Verzweigungsstruktur der vorherigen Abbildung einem Teammitglied zuweisen, dem sie gehören und die MAIN-Verzweigung verwalten. Dieses Mitglied ist für die Durchführung des anfänglichen Verzweigungsvorgangs verantwortlich, reverse integration changes from the DEVELOPMENT branch to the MAIN branch, and forward integration changes from the MAIN branch to the DEVELOPMENT branch. Die Vorwärtsintegration ist wichtig, wenn die MAIN-Verzweigung auch Änderungen aus anderen Zweigstellen integriert.

  2. Die MAIN-Verzweigung muss Code enthalten, der Integrationstests bestanden hat, damit sie immer für eine Version bereit ist.

  3. Der Entwicklungszweig (oder die Arbeit) entwickelt sich ständig, da Teammitglieder regelmäßig Änderungen überprüfen.

  4. Bezeichnungen sind Momentaufnahmen der Dateien in einer Verzweigung zu einem bestimmten Zeitpunkt.

    Weitere Informationen finden Sie unter Verwenden von Bezeichnungen, um eine Momentaufnahme Ihrer Dateien zu erstellen.

Team Foundation Build ermöglicht Es Ihnen, aus mehreren Typen von Builds für Ihre Filialen auszuwählen: manuell, fortlaufend, gated, rolling, and scheduled. Es wird empfohlen, dass die MAIN-Verzweigung über einen gated Check-In-Buildtyp verfügt. Dies bedeutet, dass die DEVELOPMENT-Verzweigung alle Anforderungen für die MAIN-Verzweigung bestehen muss, bevor Sie eine Reverseintegration übernehmen können. Die DEVELOPMENT-Verzweigung sollte einen fortlaufenden Buildtyp ausführen, da Ihr Team so schnell wie möglich wissen muss, wenn sich ein neuer Check-In auf den DEVELOPMENT Branch auswirkt.

Wie oft sollte Ihr Team integrations- und vorwärtsintegrieren?

Wie in der folgenden Abbildung gezeigt, sollte die Rückwärtsintegration und die Vorwärtsintegration zumindest auftreten, wenn Sie eine Benutzergeschichte abschließen. Obwohl jedes Team möglicherweise die Vollständigkeit anders definiert, bedeutet die Fertigstellung eines Benutzerabschnitts im Allgemeinen, dass Sie sowohl die Funktionalität als auch die entsprechenden Komponententests abschließen. Sie können die Integration in die MAIN-Verzweigung erst umkehren, nachdem Komponententests die Stabilität des ENTWICKLUNGSzweigs überprüft haben.

Verzweigen über zwei Sprints
Wenn Sie über mehrere Arbeitszweige (DEVELOPMENT) verfügen, sollte die Weiterleitungsintegration zu allen Arbeitszweigen erfolgen, sobald sich jede Verzweigung in die MAIN-Niederlassung integriert. Da die MAIN-Verzweigung stabil gehalten wird, ist die Vorwärtsintegration sicher. Konflikte oder Fehler in den Arbeitszweigen können auftreten, da Sie nicht garantieren können, dass die Arbeitszweige stabil sind.

Es ist wichtig, dass Sie alle Konflikte so schnell wie möglich lösen. Durch die Verwendung eines gated Check-Ins für die MAIN-Verzweigung erleichtern Sie die Rückwärtsintegration, da Qualitätstore konflikte oder Fehler in der MAIN-Verzweigung vermeiden. Weitere Informationen finden Sie unter Einchecken in einen Ordner, der von einem Gated-Check-In-Buildprozess gesteuert wird.

Wie verwaltet Ihr Team Quellen, die unterschiedliche Benutzergeschichten implementieren?

Wie die folgende Abbildung zeigt, können Sie änderungen an einem Arbeitszweig regelmäßig überprüfen, um einen Benutzerabschnitt abzuschließen. Sie können mehrere Benutzerabschnitte gleichzeitig in derselben Verzweigung implementieren. Sie können die Integration jedoch nur dann in die MAIN-Verzweigung rückgängig machen, wenn Sie alle laufenden Arbeiten abgeschlossen haben. Es wird empfohlen, Benutzergeschichten in ähnlicher Größe zu gruppieren, da Sie nicht möchten, dass eine große Benutzergeschichte die Integration vieler kleiner Benutzer blockiert. Sie können die beiden Gruppen von Benutzerabschnitten in zwei Verzweigungen aufteilen.

Check-in Completes User Story

Wann sollte das Team eine Verzweigung hinzufügen?

In den folgenden Situationen sollten Sie Verzweigungen erstellen:

  • Wenn Sie Code für einen anderen Zeitplan/Zyklus freigeben müssen als die vorhandenen Verzweigungen.

  • Wenn Ihr Code eine andere Verzweigungsrichtlinie erfordert. Wenn Sie eine neue Verzweigung 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 Änderungen vornehmen will, die sich nicht auf den geplanten Veröffentlichungszyklus auswirken.

Sie sollten für jeden Benutzerabschnitt keine Verzweigung erstellen, da dadurch hohe Integrationskosten entstehen. Obwohl TFVC die Verzweigung vereinfacht, kann der Aufwand für die Verwaltung von Filialen erheblich werden, wenn Sie viele Filialen haben.

Wie verwaltet das Team Versionen aus der Versionssteuerungsperspektive?

Ihr Team sollte code am Ende eines Sprints freigeben können. Mithilfe von Team Foundation Server können Sie eine Verzweigung bezeichnen, um eine Momentaufnahme des Codes zu einem bestimmten Zeitpunkt zu erstellen. Wie die folgende Abbildung zeigt, können Sie die MAIN-Verzweigung für eine Version bezeichnen. Auf diese Weise können Sie den Verzweigungszustand zu diesem Zeitpunkt zurückgeben.

Bezeichnen einer Verzweigung zum Erstellen einer Momentaufnahme des Codes
Da Sie Updates für Versionen implementieren müssen, hilft das Erstellen einer Verzweigung für eine Version Ihrem Team, unabhängig vom nächsten Sprint zu arbeiten, ohne Konflikte mit zukünftigen Versionen zu erstellen. Die folgende Abbildung zeigt eine Verzweigung, die Code für ein Update enthält und nach einer Veröffentlichung am Ende des zweiten Sprints in die MAIN-Verzweigung umgekehrt wird.

Reverse integration a branch that contains update
Wenn Sie eine Verzweigung für eine Version erstellen, sollten Sie diese Verzweigung aus der MAIN-Verzweigung erstellen, die am stabilsten ist. Wenn Sie eine Verzweigung für die Freigabe von einem Arbeitszweig durchführen, kann dies zu Integrationsproblemen führen, da die Stabilität der Arbeitszweige nicht gewährleistet ist.