In Bezug auf Schritt 3 glaube ich, dass Sie beides tun können, was Sie erwähnt haben. Für die Rückgabe einzelner Commits ist jedoch eine Verzweigung erforderlich: Verzweigen Sie Ihren aktuellen Trunk, setzen Sie ihn zurück, bevor Sie ihn löschen / hinzufügen, machen Sie eine korrekte Umbenennung, Merge + Commit jedes Commit von Interesse für Ihren Trunk in Ihren Zweig, einen Zweig mit Ihrem Trunk. Dies führt dazu, dass ein Commit nur in trunk einschließlich aller Änderungen ausgeführt wird. SVN kann jedoch Ihre früheren individuellen Commits während blame
usw. unterscheiden.
Sie können dasselbe für Trunk tun, indem Sie einfach die gewünschten Dateien nach dem richtigen Umbenennen mit dem Inhalt überschreiben, den Sie vor dem Zurücksetzen hatten. Entweder mit allen Änderungen einzeln oder nur mit dem neuesten Status der Datei. Das hängt davon ab, was Sie möchten. Denken Sie daran, dass SVN Ihre früheren individuellen Commits immer im Verlauf des übergeordneten Verzeichnisses enthalten wird. Daher ist es möglicherweise nicht erforderlich, jedes dieser Elemente für Ihre konkreten interessierenden Dateien zurückzuholen.
Am Ende können Sie all diese Ansätze ganz einfach ausprobieren, indem Sie einfach Zweige Ihres aktuellen Trunks erstellen und sich ansehen, wie Protokolle für einzelne Dateien, deren übergeordnete Verzeichnisse usw. vor / nach dem Anwenden von Änderungen aussehen. Sie können sich jetzt nicht mehr um die korrekte Umbenennung kümmern, sondern nur noch die einzelnen Commits, die Sie nur für die neuen Dateien haben. Am Ende haben Sie sie aus einem bestimmten Grund umbenannt. Wie wahrscheinlich ist es, dass Sie sich in Zukunft für den alten Status interessieren?
Um die Sache noch komplizierter zu gestalten, können Sie das aktuelle Repo sogar auf diese Revision ausgeben, bevor Sie es löschen / hinzufügen, und es als neue Basis verwenden, mit der richtigen Umbenennung und Anwendung einzelner Änderungen, um es erneut zu bestätigen. Auf diese Weise hätten Sie keine alten Commit-Nachrichten mehr und eine sehr saubere Geschichte. Denke nicht, dass es das wert ist.