0

Ich habe folgenden Baum in TFS2012TFS2012 Ist es möglich, einen Zweig von der Basis zu beschneiden und befestigen Sie eine Ebene nach unten

Base-->Branch1-->Dev1 
| 
\/ 
Dev2 

Ich mag Dev2 von Base Reparent zu Branch1 so, dass der neue Baum wird wie folgt aussehen:

Base-->Branch1-->Dev1 
      | 
     \/ 
     Dev2 

Möglicherweise wichtiges Detail: Boden und Branch1 sind identisch in jeder Hinsicht. Das einzige Element in der Historie von Branch1 ist seine ursprüngliche Erstellung aus Base. Dev1 und Dev2 haben beide signifikante Änderungen, basieren aber effektiv auf demselben Original.

Gibt es eine Möglichkeit ohne mit einer unbegründeten Zusammenführung zu erreichen?

Alternativ, wenn ich einen neuen Zweig Dev3 von Branch1 erstellen, gibt es eine Möglichkeit, alle Änderungssätze aus dem Verlauf von Dev2 zu Dev3 anzuwenden. Dies würde theoretisch zu Dev3 == Dev2 führen. Ich könnte dann Dev2 löschen.

+0

Warum willst du nicht unbegründete Zusammenführung benutzen? –

+0

@ Cece-MSFT Ich möchte keine unbegründete Zusammenführung verwenden, da es eine Menge Konflikte geben wird, da Dev2 eine radikale Operation für die Ordnerstruktur und den Code hatte. Da das Parent von Dev2 (Base) in jeder Hinsicht identisch mit Branch1 (Geschwister von Dev2) ist, gab es eine Möglichkeit, alle Changesets von Dev2 abzusetzen und dann die verschobenen Changesets auf einen neuen Zweig von Branch1 anzuwenden. Erspart mir Tage der Arbeit. Ein Vorschlag, den ich gesehen habe, besteht darin, den Rollback rückgängig zu machen und rückgängig zu machen, aber den Undo rückgängig zu machen, aber das würde den Änderungsverlauf verschmutzen. Hoffe, es gibt eine bessere Möglichkeit. Vielen Dank. –

Antwort

0

Eine einfache Möglichkeit ist grundlos Druck zu verwenden Beziehung zwischen Branch1 und Dev2 zu schaffen, Reparent dann Dev2 nach rechts Dev2 Zweig und wählen Reparent (Reparent zu Branch1) als Screenshot unten klicken:

enter image description here

+0

Da ich ausdrücklich eine Lösung * nicht * in meinem ursprünglichen Beitrag (Grund in meinen Kommentaren auf den Beitrag zitiert) * nicht * mit Basislosen Merge angefordert, kann ich dies nicht als die richtige Lösung markieren. –

+0

Das Migrieren von Changesets von einem Projekt zu einem anderen (zwei verschiedene Projekte) ist nicht sinnvoll, da die Changesets für das Quellprojekt und nicht für das Zielprojekt gelten. Wenn Sie die Änderungssets behalten möchten, müssen Sie die Konflikte lösen, indem Sie die Branch1-Version verwenden. –

+0

Mein Schlüsselpunkt hier ist, dass Branch1 und Base identisch sind. So * in der Theorie *, die die gleichen Änderungssätze anwendeten, die das Delta zwischen Basis und Dev2 zu einem neuen Zweig (Dev3, sagen wir) von Zweig1 führten, sollte zu Dev3 == Dev2 führen. Basierend auf meinen bisherigen Recherchen, ist der am wenigsten schmerzhafte Weg, dies zu tun, Rollback Dev2 auf die ursprüngliche Basis zurückzusetzen, den Rollback rückgängig zu machen, die Rollback-Änderungen zurückzustellen und dann den gelöschten Undo auf Dev3 anzuwenden. Das würde die Geschichte verschmutzen, aber von dem, was ich verstehe, wird das sowieso passieren, wenn man eine unbegründete Zusammenführung benutzt. –