2016-07-18 2 views
1

Ich habe die folgenden Zweige in meiner Quellcodeverwaltung, basierend auf den folgenden Anforderungen: Wir haben mehrere Umgebungen, aber in diesem Fall sind die wichtigsten Tests und Produktion. Wir haben mehrere gleichzeitige Projekte, die von separaten Teams entwickelt und in einer Testumgebung getestet werden müssen, wenn sie bereit sind. Wenn sie fertig sind, können sie zur Produktion gebracht werden (mit zusätzlichen Tests in einer Integrationsumgebung, wie es gerechtfertigt ist). Wir können Funktionen nicht in dedizierten Releases organisieren - sie müssen ausgehen, wie es das Unternehmen will.TFS-unbegründete Zusammenführungen - gelöschte und neu erstellte Zielverzweigung und unbegründete Zusammenführung funktioniert nicht mehr

Also, was wir strukturell festgelegt haben, war eine Zweig-pro-Umgebung plus Feature-Zweige und wir haben einfach akzeptiert, dass wir unbegründete Zusammenführungen in den Test-Zweig durchführen würden. Keine große Sache, da wir bestimmte Änderungssets einfach über die Benutzeroberfläche zu Test zusammenführen können.

$/Vorteile/Quelle/Main - Stamm, wo wir die Produktion und/oder Integration Implementierungen
$/Vorteile/Quelle/Test - Niederlassung, wo wir Funktionen in für die primären Test
$ fusionieren/Vorteile/Quelle/Dev/KÖDER-7 - vom Stamm verzweigten
$/Vorteile/Quelle/Dev/[andere Merkmale] - verzweigten Stamm

ich habe einen Funktionszweig, die verschmolzen wurde erfolgreich Test y und getestet. Leider wurde der Test-Zweig durch einige Zusammenführungen stark durcheinander gebracht und wir entschieden, dass das Löschen und Wiederherstellen des Test-Zweiges der beste Ansatz wäre. Wir haben den Zweig "Test" gelöscht und ihn aus "Trunk" neu erstellt.

Ich muss jetzt meinen Feature-Zweig in Test wieder zusammenführen und es scheint, dass mein Feature-Zweig eine Geschichte seiner unbegründeten Zusammenführungen führt und denkt, dass meine Änderungen bereits im Zielzweig sind. Ich habe überprüft, dass die spezifischen Dateiänderungen nicht dort sind.

Im Wesentlichen passiert, wenn ich auf der ersten Seite des Merge-Assistenten "bestimmte Changesets" auswähle, zeigt die nächste Seite keine Changesets neuer als der ursprüngliche Zweig.

Die Geschichte meines Zweiges, die Änderungen nach der Verzweigung sehen:
The history of my feature branch

Seite 1 des Merge-Assistent:
Page 1 of the wizard

Seite 2 des Assistenten, Die zwei Änderungssätze nach dem Zweig werden nicht angezeigt:
Page 2 of the wizard

Die Geschichte meines Test-Zweig, Sie wurde gelöscht und neu sehen:
The history of my Test branch, you can see it was deleted and recreated
(6/27 ich meine Funktion Zweig verschmolzen, 7/5 I gelöscht und den Testzweig neu)

+1

Hat der neue Testzweig denselben Namen und denselben Standort wie der alte? –

+0

Ja, deswegen vermute ich, dass alles durcheinander ist. Angenommen, das ist das Problem, hatte gehofft, es gab einen magischen Knopf, um meinen Feature-Zweig zu realisieren. –

+1

korrekt, im Grunde TFS hat die Löschung rückgängig gemacht und der alte Zweig bleibt. Sie haben 2 Optionen, erstellen Sie den neuen Testzweig an einem neuen Speicherort, damit der Pfad anders ist. Dies ist bevorzugt, wenn Sie die Historie der alten Filiale pflegen wollen. Wenn Sie den Verlauf verlieren möchten, verwenden Sie 'tf destroy' von der Befehlszeile. Dies wird den Testzweig vernichten und es wird für immer weg sein. Achtung! –

Antwort

2

Wenn Sie eine Verzweigung in TFS löschen, ist es wirklich noch da, nur versteckt. Wenn Sie einen neuen Zweig mit demselben Namen/demselben Standort erstellen, löscht TFS den alten Zweig.

Der beste Ansatz ist, um entweder

  1. mit einem neuen Namen/Ort eine Niederlassung erstellen. Führen Sie dies aus, wenn Sie den Verlauf des alten gelöschten Zweigs beibehalten möchten
  2. Verwenden Sie tf destroy über die Befehlszeile. Verwenden Sie dies, wenn der Verlauf nicht wichtig ist. Seien Sie vorsichtig mit diesem Befehl. Sobald es weg ist, ist der einzige Weg, es zurück zu bekommen, von einer Sicherung Ihrer TFS-Datenbank.
+1

tf zerstören funktioniert und ich verstehe die Vorsicht, es zu benutzen. Ich denke, dass es in meinem Fall die richtige Lösung ist, da die Branche nur dazu da ist, spezifische Funktionen für Tests zu entwickeln und bereitzustellen. Wir können immer wieder Features darin einfügen oder sie vom Stamm neu erstellen. –

+1

Ja, die Warnung war mehr für andere, die diese Antwort sehen. 'tf destroy' ist ziemlich unwiederholbar, also solltest du besonders vorsichtig damit umgehen. Wenn Sie nach dem Zerstören etwas wiederherstellen möchten, müssen Sie die neueste Datenbanksicherung verwenden, bevor der Befehl destroy ausgeführt wurde, sodass Sie nach dem Erstellen der Sicherung weitere eingecheckte Arbeiten verlieren könnten. –

Verwandte Themen