Lösen von Konflikten der Team Foundation-Versionskontrolle

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Visual Studio 2022 | Visual Studio 2019 | Visual Studio 2017 | Visual Studio 2015 | Visual Studio 2013

Ein Vorteil der Verwendung der Team Foundation-Versionskontrolle zum Verwalten Ihrer Dateien besteht darin, dass mehrere Personen gleichzeitig an einer Datei arbeiten können. Ein Nachteil ist, dass Sie manchmal Konflikte auflösen müssen, bevor Sie Ihre Dateien abrufen, einchecken, unshelven, zusammenführen oder für sie einen Rollback vornehmen können.

Es kann ärgerlich sein, auf Konflikte zu stoßen. Daher stellt das System Informationen und Tools bereit, die Ihnen dabei helfen, Konflikte zu verstehen und zu beheben.

Auflösen von Konflikten

Verwenden Sie das Fenster Konflikte lösen, um Konflikte zu lösen, von denen Sie blockiert werden.

Verwenden Sie das Fenster

Auflösen von Konflikten

Standardmäßig werden im Fenster nur die vom zuletzt ausgeführten Vorgang verursachten Konflikte angezeigt. Wenn sich das Fenster in diesem Zustand befindet, wird eine Meldung angezeigt, die beginnt: Pfadfilter angewendet. Um alle Konflikte in Ihrem Arbeitsbereich anzuzeigen, wählen Sie "Alle Konflikte abrufen" aus. Eine Nachricht, die beginnt mit: n Konflikt(n) wird angezeigt.

Wenn seit der letzten Änderung an den Dateien bereits viel Zeit vergangen ist, sind möglicherweise neue Konflikte aufgetreten. Um das Fenster " Konflikte auflösen " zu aktualisieren, wählen Sie "Aktualisieren" aus.

Jeder Konflikt enthält Informationen und manchmal Links, mit deren Hilfe Sie den Konflikt möglichweise beheben können. Um weitere Informationen abzurufen, können Sie den Konflikt und eine der folgenden Optionen auswählen:

  • Wählen Sie Verlauf, um den Verlauf der Datei anzuzeigen. Wenn der Vorgang, der den Konflikt verursacht hat, ein Seriendruck oder ein Rollback ist, können Sie das Menüsteuerelement rechts neben dem Verlauf auswählen und dann entweder Den Quellverlauf oder den Zielverlauf auswählen.

    Weitere Informationen finden Sie unter "Abrufen des Verlaufs eines Elements".

  • Wählen Sie Beachten Sie, dass Details zu allen Änderungen angezeigt werden, die an die neueste Version der Datei vorgenommen wurden, einschließlich derJenigen, die jede Änderung vorgenommen haben und wann sie es vorgenommen haben. Weitere Informationen finden Sie unter Anzeigen von Dateiänderungen mithilfe von Anmerkungen.

  • Wählen Sie Vergleichen Sie (oder das Menü rechts neben der Schaltfläche, und wählen Sie dann einen Befehl aus). Das Diff-Fenster wird angezeigt.

Automatisches Auflösen aller Konflikte

Standardmäßig versucht das System automatisch, alle Konflikte automatisch zu beheben , es sei denn, Sie haben diese Option deaktiviert (siehe Tipps). Im Fenster "Konflikte auflösen" können Sie auch manuell autoResolve All auswählen und dann folgendes auswählen:

  • Wählen Sie alle Konflikttypen aus, wenn das System versucht, die Konflikte automatisch mithilfe aller Heuristiken zu lösen.

  • Wählen Sie bestimmte Konflikttypen aus, wenn das System versucht, die Konflikte zu lösen, aber Sie möchten einige Heuristiken ausschließen.

    Das Dialogfeld "Konflikte auswählen" wird angezeigt. Überprüfen oder deaktivieren Sie die Optionen, die Sie aktivieren oder deaktivieren möchten, und wählen Sie dann "AutoResolve" aus. Weitere Informationen finden Sie unter " Grundlegendes zu den folgenden automatischen Optionen ".

Das System versucht, die im Fenster Ausstehende Änderungen angezeigten Konflikte automatisch zu lösen. Alle Konflikte, die das System nicht lösen kann, bleiben im Fenster. Sie müssen diese Konflikte manuell beheben .

So führen Sie einen einzelnen Konflikt automatisch zusammen

Wählen Sie "AutoMerge " aus, wenn Sie versuchen möchten, ausgewählte Konflikte mithilfe aller autoMerge-Optionen zu beheben, die unter "Grundlegendes zu den folgenden automatischen Optionen " beschrieben sind.

Tipp

Sie können die Tasten STRG oder die UMSCHALTTASTE gedrückt halten und dann mehrere Konflikte auswählen.

Hinweis

Wenn AutoMerge deaktiviert ist, muss dieser Konflikt manuell aufgelöst werden.

Manuelles Auflösen eines einzelnen Konflikts

Wenn das System einen Konflikt nicht automatisch lösen kann, oder wenn Sie sicherstellen möchten, dass Sie die Änderungen verstehen, müssen den Konflikt manuell lösen. In den ausgewählten Konflikten zeigt das System die Aktionen an, die Sie ausführen können, um den Konflikt zu lösen. Die angezeigten Aktionen hängen vom Konflikttyp und vom Vorgang ab, der den Konflikt verursacht hat.

Zusammenführen von Änderungen im Mergetool

Wenn ein Konflikt durch konfliktierende Inhaltsänderungen verursacht wird, können Sie "Änderungen zusammenführen" im Seriendrucktool auswählen.

Wenn Sie diese Aktion auswählen, wird das Mergefenster angezeigt.

Zusammenführen von Änderungen im Mergetool

Das Ergebnis Ihrer Arbeit, um den Konflikt zu lösen, wird im Bereich "Ergebnisse " angezeigt.

In diesem Fenster können Sie folgende Aufgaben ausführen:

  • Wählen Sie das Layout des Fensters aus: Vertikale Ansicht, Horizontale Ansicht, Gemischte Ansicht.

  • Navigieren Sie in den Unterschieden und Konflikten.

  • Wählen Sie Elemente von der linken und rechten Version der Datei aus, um diese im Ergebnis zu berücksichtigen.

  • Geben Sie im Ergebnisbereich zusätzlichen Inhalt in die Datei ein.

  • Zeigen Sie den Verlauf der Datei an. Weitere Informationen finden Sie unter "Abrufen des Verlaufs eines Elements".

  • Vergleichen Sie die verschiedenen Versionen der Datei.

  • Kommentieren Sie die Datei, um anzuzeigen, wer welche Änderung vorgenommen hat. Weitere Informationen finden Sie unter Anzeigen von Dateiänderungen mithilfe von Anmerkungen.

Wenn sie mit dem Inhalt des Ergebnisbereichs zufrieden sind, wählen Sie "Zusammenführen" aus.

Grundlegendes zu den automatischen Optionen

In besonderen Fällen möchten Sie möglicherweise die Typen von Konflikten einschränken, die automatisch von der Option "AutoResolve All " aufgelöst werden.

Wenn Sie AutoResolve All auswählen und dann bestimmte Konflikttypen auswählen, wird das Dialogfeld ' Konflikte auswählen' angezeigt.

Grundlegendes zu den automatischen Optionen

Wenn das System Konflikte automatisch auflösen soll, die aufgetreten sind, weil...

Wie in diesem Beispiel erläutert...

Aktivieren Sie dann dieses Kontrollkästchen...


Nicht in Konflikt stehende Inhaltsänderungen wurden in jeder Version einer Datei vorgenommen

In der Dateiversion links wurde am Anfang eine Null hinzugefügt. In der Datei rechts wurde am Ende ein Dreier hinzugefügt:

Nicht in Konflikt stehende Inhaltsänderungen

Konflikte mit beliebigen Inhaltsänderungen

Es wurden Änderungen vorgenommen, die speziell für den Arbeitsbereich (während des Abrufens oder Eincheckens) oder die Zielversion (während des Zusammenführens oder des Rollbacks) gelten

vier und fünf wurden dem Arbeitsbereich oder der Zielversion hinzugefügt:

Eindeutige Inhaltsänderungen für Arbeitsbereich oder Ziel

Konflikte mit Inhaltsänderungen, die nur im lokalen Arbeitsbereich oder im Zielbranch vorgenommen wurden

Es wurden Änderungen vorgenommen, die speziell für den Server (während des Abrufens oder Eincheckens) oder die Quellversion (während des Merge oder des Rollbacks) gelten

vier und fünf wurden der Server- oder Quellversion hinzugefügt:

Eindeutige Inhaltsänderungen für Server oder Quelle

Konflikte mit Inhaltsänderungen, die nur in der Serverversion oder dem Quellbranch vorgenommen wurden

Eine Datei auf dem Server (während des Abrufens oder Eincheckens) oder in dem Quellbranch (während des Zusammenführens oder des Rollbacks) wurde umbenannt

Sie haben eine Datei ausgecheckt, die " launch.cs " genannt wird und daran gearbeitet hat. Während dieses Zeitraums hat eine andere Person ein Changeset eingecheckt, das sich auf diese Datei ausgewirkt hat. Dieses Changeet hat den Inhalt der Datei nicht geändert, aber es hat den Namen der Datei in start.cs geändert.

Konflikte aufgrund der Umbenennung der Datei in der Serverversion oder der Quellverzweigung

  • Es wurden allgemeine Inhaltsänderungen vorgenommen, die in allen Versionen zu identischem Inhalt geführt haben

  • Sie haben eine Datei geändert, sie über einen Gated Check-In-Build aktiviert und die Option "Meine ausstehenden Änderungen lokal beibehalten " ausgewählt.

Änderungen an jeder Version führten zu identischem Dateiinhalt. Die Änderungen können den Inhalt der Dateien betreffen, wie im folgenden Beispiel gezeigt:

Identische Inhaltsänderungen in jeder Version Diese Option löst auch Konflikte auf, die durch alle anderen Vorgänge verursacht werden (z. B. Umbenennen, Löschen, Rückgängigmachen und Verzweigung), und die zu identischen Dateien führen.

Tipp

Wenn Sie beim Fortfahren dieses Kontrollkästchen aktivieren, löst das System diese Änderungen auf, indem sie die Serverversion auf den Arbeitsbereich überträgt (herunterlädt).

Konflikte, die durch identische Änderungen auf dem Server und im Arbeitsbereich verursacht werden

Über die Eingabeaufforderung arbeiten

Tipps

  • Tipps Standardmäßig versucht das System automatisch, alle Konflikte automatisch zu lösen . Um die Option zu ändern, wählen Sie in der Menüleiste "Extras", " Optionen" und dann im Dialogfeld "Optionen " zu "Quellcodeverwaltung", Visual Studio Team Foundation Server. Deaktivieren Sie den Versuch, Konflikte automatisch zu beheben, wenn sie generiert werden .

  • Tipps Muss Ihr Team zusammenarbeiten, um eine große Anzahl von Konflikten zu lösen (z. B. was nach dem Zusammenführungsvorgang in einer großen Codebasis auftreten kann)? Ist dies der Fall, könnte ein öffentlicher Arbeitsbereich auf einem gemeinsam genutzten Entwicklungscomputer hilfreich sein. Siehe Erstellen und Verwenden von Arbeitsbereichen.