2008-10-29 9 views
94

Ich habe versehentlich eine Reihe von Dateien (dutzende Dateien in verschiedenen Ordnern) übertragen. Was ist der einfachste, sauberste (und sicherste) Weg, um das Commit rückgängig zu machen, ohne die Dateien aus meinem Arbeitsverzeichnis löschen zu müssen?Rückgängigmachen eines Commits in TortoiseSVN

Antwort

142

Zum Show Log Bildschirm, wählen Sie die Revision, die Sie rückgängig machen wollen, ist es rechtsklicken und wählen Änderungen rückgängig machen aus dieser Revision, wird dies eine reverse-merge tun.

+8

Das war, was ich erwartet hatte, aber kein Schild in der neuesten Schildkröte Release –

+37

Vergessen Sie nicht, danach zu begehen, weil es nur lokal verschmilzt. – pihentagy

+4

Stellen Sie sicher, dass Sie Ihre Arbeitskopie vorher aktualisieren, sonst passiert nichts. –

2

Sie können Ihre Arbeitskopie vor dem Commit auf die Revision zurücksetzen. Sobald Sie Ihre Arbeitskopie zurückgesetzt haben, können Sie die Änderungen einfach festschreiben und die versehentliche Festschreibung effektiv rückgängig machen.

In einem Fall wie Ihrem speziell, würde ich wahrscheinlich die Revision überprüfen, die ich in eine neue Arbeitskopie zurückrollen wollte und dann die Arbeitskopie an die Hauptversion übergeben.

+4

Würde dies Ihnen nicht sagen, dass Ihre Revision veraltet ist und Sie vor dem Commit aktualisieren müssen? Ich denke, Sie müssen die vorherige Revision zusammenführen, anstatt nur auf die alte zu aktualisieren. – Mnebuerquo

+0

Auch diese Strategie geht davon aus, dass das schlechte Commit das vorherige ist. Vielleicht möchten Sie einige Änderungen rückgängig machen, die vor einiger Zeit stattgefunden haben, ohne alle Änderungen rückgängig zu machen. – jpaugh

14

Möglicherweise müssen Sie die Befehlszeile verwenden, Sie können jedoch den SVN-Befehl zum Zusammenführen verwenden und die Revisionen in umgekehrter Reihenfolge angeben, um eine Festschreibung wirksam rückgängig zu machen. Angenommen, Ihr schlechtes Commit war r1123, würden Sie tun:

svn merge -r1123:1122 <url of your working copy> 
+0

Nichts ändert sich, wenn ich das mag: svn merge -r 1880: 1879 https: // server/myproject/branches/problem42 I habe beide mit Raum wie diesem versucht "-r 1880: 1879" und ohne Platz wie diesen "-r1880: 1879". Wenn ich danach "svn st" starte, hat sich nichts geändert. – neoneye

Verwandte Themen