Befehl Merge

Aktualisiert: November 2007

Der Befehl merge wendet Änderungen in einer Verzweigung auf eine andere an.

Hinweis:

Die Ergebnisse dieses Befehls werden erst nach dem Ausführen eines Eincheckvorgangs in Team Foundation-Versionskontrolle übernommen. Weitere Informationen finden Sie unter Gewusst wie: Einchecken von ausstehenden Änderungen.

Erforderliche Berechtigungen

Zum Verwenden des Befehls merge muss die Berechtigung Auschecken für den Arbeitsbereichsordner, der das Ziel für die Zusammenführung enthält, auf Zulassen festgelegt sein. Außerdem muss für den Arbeitsbereichsordner, der die Quelle enthält, die Berechtigung Lesen auf Zulassen festgelegt sein. Weitere Informationen finden Sie unter Team Foundation Server-Berechtigungen.

tf merge [/recursive] [/force] [/candidate] [/discard] 
[/version:versionspec] [/lock:none|checkin|checkout] [/preview] 
[/baseless] [/nosummary] [/noimplicitbaseless] source destination

Parameter

Argument

Beschreibung

versionspec

Gibt für die Option /version einen Wert an, z. B. C2. Weitere Informationen über das Verfahren, mit dem Team Foundation durch Analysieren der Versionsspezifikation die Elemente bestimmt, die innerhalb des Bereichs liegen, finden Sie unter Befehlszeilensyntax (Team System).

source

Gibt die Datei oder den Ordner an, die bzw. der als Quelle für die Zusammenführung fungiert.

Destination

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

Option

Beschreibung

/recursive

Sucht nach Entsprechungen der source-Elementspezifikation im aktuellen Verzeichnis und in sämtlichen Unterordnern.

/force

Ignoriert die Versionsgeschichte der Zusammenführung und führt die angegebenen Änderungen aus der Quelle im Ziel zusammen, selbst wenn einige oder alle diese Änderungen bereits zusammengeführt wurden.

/candidate

Druckt eine Liste aller Changesets in der Quelle, die bisher nicht im Ziel zusammengeführt wurden. Die Liste sollte die ID des Changesets enthalten, die noch nicht zusammengeführt wurde, sowie weitere Basisinformationen über das Changeset.

/discard

Führt die Zusammenführung nicht durch, aber aktualisiert die Versionsgeschichte der Zusammenführung, um die ausgeführte Zusammenführung zu verfolgen. Dabei wird ein Changeset zur Verwendung für eine bestimmte Zusammenführung verworfen.

/version

Diese Option gibt den Bereich an, der im Ziel zusammengeführt werden soll, und ermöglicht damit eine selektive Zusammenführung. Bei einer Ausgleichzusammenführung gibt dieser Parameter die Version an, vor der alle nicht zusammengeführten Änderungen zusammengeführt werden sollen.

Bei einer selektiven Zusammenführung stellt der Versionsbereich den Anfangs- und den Endpunkt der zusammenzuführenden Änderungen dar. Wenn Sie z. B. die Versionen 4 bis 6 zusammenführen, werden die Changesets 4, 5 und 6 zusammengeführt.

/lock

Gibt einen Sperrtyp an oder entfernt die Sperre eines Elements. Weitere Informationen finden Sie unter Grundlagen von Sperrentypen.

Sperroptionen:

  • None

    Es wird keine Sperre auf ein Element angewendet, und vorhandene Sperren für ein Element werden entfernt.

  • Checkin

    Andere Benutzer können die angegebenen Elemente auschecken. Sie können Revisionen gesperrter Dateien jedoch erst dann einchecken, wenn Sie die Sperre durch einen Eincheckvorgang wieder aufheben. Wenn andere Benutzer eines der angegebenen Elemente gesperrt haben, schlägt der Sperrvorgang fehl.

  • Checkout

    Verhindert das Auschecken der angegebenen Elemente durch Benutzer, bis Sie die Sperre explizit aufheben. Wenn andere Benutzer eines der Elemente gesperrt haben oder ausstehende Änderungen für diese Elemente vorhanden sind, schlägt der Sperrvorgang fehl.

/preview

Zeigt eine Vorschau der Zusammenführung an.

/baseless

Führt eine Zusammenführung ohne eine Basisversion aus. Dies ermöglicht dem Benutzer, Dateien und Ordner zusammenzuführen, die nicht über eine Zusammenführungsbeziehung verfügen. Nach einer Zusammenführung ohne Ausgangspunkt ist eine Zusammenführungsbeziehung vorhanden, und zukünftige Zusammenführungen müssen nicht mehr ohne Ausgangspunkt ausgeführt werden.

/nosummary

Lässt Zusammenfassung von Fehlern und Warnungen aus, wenn dafür mehr als 10 Zeilen der Ausgabe erforderlich sind.

/noimplicitbaseless

Gibt an, dass Team Foundation keine implizite Zusammenführung ohne Ausgangspunkt für zwei Elemente durchführt, die in zwei nicht zusammengehörigen Versionskontrollenverzweigungen über denselben relativen Namen verfügen.

/noprompt

Unterdrückt alle Eingabeaufforderungen.

Hinweise

Sie können mit dem Befehl merge des Befehlszeilenprogramms tf Änderungen in einer vorhandenen Quellverzweigung auf eine vorhandene Zielverzweigung anwenden. Sie können eine einzelne Revision oder ein vollständiges Changeset in der Zielverzweigung zusammenführen. Sie können Änderungen aus der Quelle in der Zielverzweigung oder vom Ziel in der Quellverzweigung zusammenführen.

Mit dem Befehl merge können Sie außerdem Änderungen in einer Quellverzweigung abfragen, die noch nicht in die Zielverzweigung migriert wurden. Des Weiteren können Sie angeben, dass bestimmte Änderungen nie von der Quelle im Ziel zusammengeführt werden und nicht mehr als Optionen für die Zusammenführung angezeigt werden.

Weitere Informationen zur Suche nach dem Befehlszeilendienstprogramm tf finden Sie unter Befehle des Befehlszeilendienstprogramms "Tf".

Zusammenführung ohne Ausgangspunkt

Verwenden Sie die Zusammenführung ohne Ausgangspunkt, um Elemente zusammenzuführen, die nicht direkt voneinander verzweigt sind. Um eine Zusammenführung ohne Ausgangspunkt durchzuführen, müssen Sie den Befehl tfmerge verwenden. Beim Durchführen einer Zusammenführung ohne Ausgangspunkt verfügt Team Foundation nicht über Informationen zur Beziehung der Dateien in den Verzweigungen. Bei einer Zusammenführung ohne Ausgangspunkt müssen Sie manuelle Konfliktlösungen durchführen. Nachdem Sie die Zusammenführung ohne Ausgangspunkt durchgeführt und alle Konflikte behoben haben, zeichnet Team Foundation den Verlauf der Zusammenführung auf und stellt zwischen den Ordnern und Dateien eine Beziehung her.

Wenn Sie tfmerge ausführen, führt Team Foundation eine implizite Zusammenführung ohne Ausgangspunkt für zwei Elemente durch, die in zwei vorher zusammengehörigen Versionskontrollenverzweigungen über denselben relativen Namen verfügen. Angenommen, Sie möchten die verwandten Verzweigungen $SRC\ und $TGT zusammenführen. Beide Verzweigungen enthalten eine nicht verwandte Datei mit dem Namen a.txt. Wenn Sie tf merge ausführen, stellt Team Foundation eine Beziehung zwischen den beiden Dateien mit dem Namen a.txt her, wenn die Dateien identisch sind, wenn die FIPS-kompatible Verschlüsselung deaktiviert ist und wenn die Quelldatei am Ziel nicht mit einer anderen Datei in Beziehung steht.

Falls Sie tf merge mit festgelegter Option /noimplicitbaseless ausführen, ergeben die beiden Dateien a.txt beim versuchten Zusammenführen der beiden Verzweigungen durch Team Foundation einen Namespacekonflikt, wenn Sie versuchen, die Änderungen einzuchecken. Um den Konflikt zu lösen, müssen Sie eine der Dateien umbenennen.

Beispiele

Im folgenden Beispiel werden Änderungen von MyFile_beta1 zusammengeführt, die noch nicht mit MyFile_RTM zusammengeführt wurden.

c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive

Im folgenden Beispiel werden nur die Änderungen von Changeset 137 mit branch2 zusammengeführt.

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

Im folgenden Beispiel werden alle Changesets vom ersten Changeset bis einschließlich Changeset 137 aus branch1 zusammengeführt.

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

Im folgenden Beispiel werden alle Änderungen aus Changeset 100 bis einschließlich Changeset 137 zusammengeführt.

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

Im folgenden Beispiel wird eine Liste der Changesets in branch1 angezeigt, die noch nicht mit branch2 zusammengeführt wurden.

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

Im folgenden Beispiel wird eine Liste der Changesets in branch2 angezeigt, die noch nicht zurück in branch1 zusammengeführt wurden.

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

Im folgenden Beispiel wird das Changeset 137 als Option für das Zusammenführen in branch2 verworfen.

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

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erweiterte Funktionalität der Versionskontrolle

Gewusst wie: Lösen von Konflikten zwischen zwei Dateien

Konzepte

Grundlagen von Verzweigungen

Referenz

Befehlszeilensyntax (Team System)

Befehl Branch

Befehl Merges

Weitere Ressourcen

Befehle des Befehlszeilendienstprogramms "Tf"