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 destination
enthält, und die berechtigung "Lesen" auf Zulassen für den Arbeitsbereichsordner festgelegt haben, der die source
enthä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 username
angeben.
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~6
zusammenzufü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 merge
ausfü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 $TGT
zusammenführen. Beide Verzweigungen enthalten eine nicht verknüpfte Datei, die a.txtbenannt wird. Wenn Sie tf merge
ausfü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