Freigeben über


Befehl 'Zusammenführen' (Team Foundation Version Control)

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022-

Der Befehl tf merge wendet Änderungen von einer Verzweigung in eine andere in team Foundation Version Control (TFVC) an.

Anmerkung

Die Ergebnisse dieses Befehls werden erst auf dem Azure DevOps-Server widergespiegelt, wenn Sie einen Check-In-Vorgang ausführen. Weitere Informationen finden Sie unter Entwickeln von Code und Verwalten ausstehender Änderungen.

Voraussetzungen

Wenn Sie den Befehl merge verwenden möchten, müssen Sie den Berechtigungssatz "Auschecken" auf Zulassen für den Arbeitsbereichsordner festlegen, der die destinationenthält, und die berechtigung "Lesen" auf Zulassen für den Arbeitsbereichsordner festgelegt haben, der die sourceenthält. Weitere Informationen finden Sie unter Standard-TFVC-Berechtigungen.

Syntax

tf merge [/recursive] [/force] [/candidate] [/discard] 
[/version:versionspec] [/lock:none|checkin|checkout] [/preview] 
[/baseless] [/nosummary] [/noimplicitbaseless] [/conservative] [/format:(brief|detailed)] [/noprompt] [/login:username,[password]] source destination

Parameter

Argumente

Argument

Beschreibung

<versionspec>

Stellt einen Wert wie C2 für die option /version bereit. Weitere Informationen dazu, wie TFVC eine Versionsspezifikation analysiert, um zu bestimmen, welche Elemente in ihrem Bereich enthalten sind, finden Sie unter Verwenden von Steuerelementbefehlen für die Team Foundation-Version.

<source>

Gibt die Datei oder den Ordner an, die als Quelle des Seriendrucks fungieren soll.

<destination>

Gibt die Datei oder den Ordner an, die als Ziel der Zusammenführung fungiert.

<username>

Stellt einen Wert für die Option /login bereit. Sie können einen username Wert entweder als DOMAIN\username oder als usernameangeben.

Optionen

Option

Beschreibung

/recursive

Entspricht der source Elementspezifikation im aktuellen Verzeichnis und allen Unterordnern.

/force

Ignoriert den Seriendruckverlauf und führt die angegebenen Änderungen aus der Quelle in das Ziel zusammen, auch wenn einige oder alle diese Änderungen zuvor zusammengeführt wurden.

/candidate

Druckt eine Liste aller Änderungenets in der Quelle, die noch nicht mit dem Ziel zusammengeführt wurden. Die Liste sollte die Changeset-ID enthalten, die nicht zusammengeführt wurde, und andere grundlegende Informationen zu diesem Changeset. Ein Sternchen für ein bestimmtes Ergebnis gibt an, dass es teilweise zusammengeführt wurde, was bedeutet, dass einige der Änderungen im Changeset zusammengeführt wurden und andere Änderungen nicht zusammengeführt wurden.

/discard

Führt den Zusammenführungsvorgang nicht aus, aktualisiert aber den Seriendruckverlauf, um nachzuverfolgen, dass der Seriendruck aufgetreten ist. Dadurch wird ein Changeet verworfen, das für eine bestimmte Zusammenführung verwendet wird.

/version

Bei einer selektiven Zusammenführung gibt diese Option den Bereich an, der mit dem Ziel zusammengeführt werden soll. Bei einer Nachverfolgungszusammenführung gibt dieser Parameter die Version an, vor der alle nicht zusammengeführten Änderungen zusammengeführt werden sollen.

Bei einer selektiven Zusammenführung bezeichnet der Versionsbereich den Anfang und die Endpunkte der Gruppe der zu verbindenden Änderungen. Wenn Sie beispielsweise versuchen, version 4~6zusammenzuführen, werden die Changesets 4, 5 und 6 zusammengeführt.

/lock

Gibt einen Sperrtyp an oder entfernt eine Sperre aus einem Element. Weitere Informationen finden Sie unter Grundlegendes zu Sperrtypen.

Sperroptionen:

  • None: Platziert keine Sperre für ein Element und entfernt eine vorhandene Sperre aus dem Element.

  • Checkin: Andere Benutzer können die angegebenen Elemente auschecken, aber sie können keine Überarbeitungen für gesperrte Dateien einchecken, bis Sie die Sperre freigeben, indem Sie ein Einchecken durchführen. Wenn andere Benutzer eines der angegebenen Elemente gesperrt haben, schlägt der Sperrvorgang fehl.

  • Checkout: Verhindert, dass Benutzer eines der angegebenen Elemente einchecken oder auschecken, bis Sie die Sperre explizit freigeben. Wenn andere Benutzer eines der angegebenen Elemente gesperrt haben oder vorhandene ausstehende Änderungen für ein Element vorhanden sind, schlägt der Sperrvorgang fehl.

/preview

Zeigt eine Vorschau des Seriendrucks an.

/baseless

Führt einen Seriendruck ohne Basisversion aus. Das heißt, der Benutzer kann Dateien und Ordner zusammenführen, die nicht über eine Zusammenführungsbeziehung verfügen. Nach einer basislosen Zusammenführung ist eine Zusammenführungsbeziehung vorhanden, und zukünftige Zusammenführungen müssen nicht basislos sein.

Anmerkung

Basislose Zusammenführungen können keine Dateien im Ziel löschen. Sie können diese Änderungen manuell übernehmen.

/noimplicitbaseless

Gibt an, dass TFVC keine implizite basislose Zusammenführung zwischen zwei Elementen mit demselben relativen Namen in zwei nicht verknüpften Versionssteuerungsstrukturen vorsieht.

/nosummary

Lässt eine Zusammenfassung von Konflikten, Fehlern und Warnungen aus.

/noprompt

Unterdrückt alle Aufforderungen zur Eingabe von Ihnen.

/conservative

Führt zu weiteren Konflikten, wenn Sie eine Verzweigung mit einer anderen zusammenführen.

/format

Gibt die Formate für die Zusammenfassung von Zusammenführungskonflikten an:

  • Brief (Standard): Fasst nur die Gesamtzahl der Konflikte, Warnungen und Fehler zusammen.
  • Detailed: Fasst nicht nur die Gesamtanzahl der Konflikte, Warnungen und Fehler zusammen, sondern listet auch Details zu den einzelnen Konflikten auf.

Anmerkung

Diese Option gilt nur, wenn die Ausgabe eine Zusammenfassung von Konflikten enthält. Die Zusammenfassung kann nicht angezeigt werden, wenn die option /nosummary verwendet wird oder die Zusammenführung weniger als 10 Konflikte, Warnungen und Fehler verursacht hat.

/login

Gibt den Benutzernamen und das Kennwort an, um den Benutzer bei Azure DevOps zu authentifizieren.

Bemerkungen

Sie können den befehl merge des Befehlszeilenprogramms tf verwenden, um Änderungen in einer vorhandenen Quellverzweigung auf eine vorhandene Zielverzweigung anzuwenden. Sie können eine einzelne Überarbeitung oder ein vollständiges Changeset in der Ziel-Verzweigung zusammenführen. Sie können Änderungen aus der Quelle in die Ziel-Verzweigung oder vom Ziel zum Quellzweig zusammenführen.

Mit dem Befehl "merge" können Sie auch Änderungen in einem Quellzweig abfragen, die nicht in den Zielzweig migriert wurden. Mit dem Befehl können Sie auch angeben, dass bestimmte Änderungen nie aus der Quelle mit dem Ziel zusammengeführt werden und nicht mehr als Kandidaten für einen Zusammenführungsvorgang angezeigt werden sollen.

Weitere Informationen zur Verwendung des Befehlszeilenprogramms tf finden Sie unter Verwenden von Befehlen für die Versionskontrolle von Team Foundation.

Basislose Zusammenführung

Verwenden Sie eine basislose Zusammenführung, um Elemente zusammenzuführen, die nicht direkt voneinander verzweigt sind. Um eine basislose Zusammenführung auszuführen, müssen Sie den Befehl tf merge verwenden. Wenn Sie eine basislose Zusammenführung durchführen, enthält TFVC keine Informationen über die Beziehung der Dateien in den Verzweigungen. In einer basislosen Zusammenführung müssen Sie manuelle Konfliktauflösungen ausführen. Nachdem Sie die basislose Zusammenführung durchführen und konflikte lösen, zeichnet TFVC den Zusammenführungsverlauf auf und stellt eine Beziehung zwischen den Ordnern und Dateien her.

Wenn Sie tf mergeausführen, führt TFVC eine implizite basislose Zusammenführung zwischen Elementen mit demselben relativen Namen in zwei zuvor verwandten versionsgesteuerten Strukturen durch. Sie können beispielsweise die verwandten Verzweigungen $SRC und $TGTzusammenführen. Beide Verzweigungen enthalten eine nicht verknüpfte Datei, die a.txtbenannt wird. Wenn Sie tf mergeausführen, stellt TFVC eine Beziehung zwischen den beiden a.txt Dateien her, wenn die beiden Dateien identisch sind, ist die FIPS-kompatible Verschlüsselung deaktiviert, und die Quelldatei ist nicht mit einer anderen Datei im Ziel verknüpft.

Wenn Sie tf merge mit dem Optionssatz /noimplicitbaseless ausführen, erstellen die beiden a.txt Dateien beim Einchecken der Änderungen einen Namespacekonflikt, wenn TFVC versucht, die beiden Verzweigungen zusammenzuführen. Um den Konflikt zu beheben, müssen Sie eine der Dateien umbenennen.

Beispiele

Im folgenden Beispiel werden Änderungen aus MyFile_beta1 zusammengeführt, die nicht in MyFile_RTMzusammengeführt wurden.

c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive

Im folgenden Beispiel werden changeset 137 in branch2zusammengeführt.

c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive

Im folgenden Beispiel werden alle Changesets bis zu changeset 137 in branch2zusammengeführt.

c:\projects>tf merge /version:C137 branch1 branch2 /recursive

Im folgenden Beispiel wird eine Liste der Changesets in Branch1 gedruckt, die nicht in Branch2-zusammengeführt wurden.

c:\projects>tf merge /candidate branch1 branch2 /recursive

Im folgenden Beispiel wird eine Liste der Changesets in Branch2 gedruckt, die nicht wieder in Branch1-zusammengeführt wurden.

c:\projects>tf merge /candidate branch2 branch1 /recursive

Im folgenden Beispiel werden Changeset 137 als Kandidat für die Zusammenführung in Branch2verworfen.

c:\projects>tf merge /discard /version:C137~C137 branch1 branch2 /recursive

Im folgenden Beispiel werden alle Changesets bis zu Changeset 137 als Kandidaten für die Zusammenführung in Branch2verworfen.

c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive