Angenommen, ich habe Datei A
in Datei B
mit Windows Explorer umbenannt und eine neue Datei C
erstellt.Rückgängigmachen einer Reparaturbewegung in TortoiseSVN
In Tortoise SVN, verwende ich aus Versehen die "Repair Move" auf Datei A
und C
, statt A
und B
. Gibt es eine einfache Möglichkeit, die Reparatur rückgängig zu machen (und sie mit den richtigen Dateien wiederherzustellen)? Änderungen werden zu diesem Zeitpunkt nicht vorgenommen.
Die einzige Möglichkeit, die ich derzeit bewusst ist, ist das Zurücksetzen der löschen und hinzufügen, die Datei A
wiederherstellen, dann manuell löschen Sie die Datei erneut und wiederholen Sie die Verknüpfungen korrekt. Bei mehreren Dateien birgt dies die Gefahr, dass lokale Änderungen versehentlich rückgängig gemacht werden. Daher interessiert mich, ob es einen besseren Weg gibt.
Hinweis: Obwohl TortoiseSVN verwendet wird, um das Problem zu erzeugen, ist eine Antwort mit Svn-Konsole auch akzeptabel. Hier
ist das Beispiel mit Dateien A.txt
, B.txt
und C.txt
Schritt für Schritt:
Nach A
-B
umbenannt und C
lokal
>svn st
! A.txt
? B.txt
? C.txt
Nach Tortoise SVN „Repair Bewegung hinzugefügt "wird falsch angewendet A
->C
>svn st
D A.txt
> moved to C.txt
? B.txt
A + C.txt
> moved from A.txt
Mein Workflow, die Situation zu beheben, die ich mit nicht wirklich glücklich bin:
>ren C.txt C.txt.bak
>svn revert C.txt A.txt
>ren C.txt.bak C.txt
>del A.txt
in der Ausgangssituation Resultierend aus, wo ich
>svn st
! A.txt
? B.txt
? C.txt
die Reparatur mit richtigen Dateien wiederherstellen kann
Was würde ich lieben, aber das scheint nicht zu existieren
svn mv --force --ignore-files A.txt B.txt
svn add --force C.txt
in eine Weise, dass es ignoriert, dass A bereits gelöscht markiert ist und einer Geschichte Transfer von A nach B ermöglichen, C so sauber Add neu zu interpretieren statt transfering Geschichte von A.
Ich könnte es falsch verstehen, aber was Sie nicht tun möchten, ist die Änderungen aus dem Staging zu entfernen und dann manuell die Umbenennung zu beheben und dann das Stage-Commit durchzuführen. Ist das richtig? WENN es ist, was genau wäre die automatische Version dieses Prozesses - dh - wie willst du SVN sagen, was du eigentlich willst? –
Noch ein paar Dinge - was ist eigentlich das Risiko? Würden Sie Daten/Arbeit verlieren, wenn Sie die falschen Dateien begehen? Über wie viele Dateien reden wir? –
@LeftyGBalogh Ich hoffe irgendwie, dass es eine Möglichkeit gibt, den SVN-Zustand (zB 'deleted') rückgängig zu machen, ohne die Datei tatsächlich wiederherzustellen. Dies würde mir erlauben, die Assoziationen korrekt wiederherzustellen. Das Risiko besteht darin, dass ein inkonsistenter Zustand zwischen Projektmetadateien und Codedateien entsteht, der Versionsverlauf beschädigt wird oder lokale Änderungen verloren gehen. Wir reden über eine Sache, die mir in der Vergangenheit passiert ist und wahrscheinlich auch in Zukunft passieren wird. Ich kümmerte mich um vergangene Ereignisse, aber ich bin nicht zufrieden mit meinen Arbeitsabläufen. – grek40