Frage

ich es geschafft, mich in den Fuß an diesem Morgen zu schießen, indem Sie die folgenden Aktionen ausführen:

  1. Erste auf einer Änderung zu meinem Projekt arbeiten
  2. Sie machte eine Reihe von Änderungen an eine Reihe von Dateien
  3. erkannte, dass mein Ansatz war alles falsch, und dass ich brauchte über beginnen
  4. auf der obersten Ebene meines Projekts cd'd und hat einen „svn --recursive revert.“ meine lokalen Sandbox des vorherigen ändert seinen Zustand wieder herzustellen.
  5. heulte in Entsetzen, als ich merkte, dass es eine Reihe weiterer Änderungen war hervorragend in meiner lokalen Sandbox, und ich hatte gerade alle von ihnen ausgelöscht. (SVN-Server hatte am vergangenen Freitag war nach unten, so hatte ich nicht in der Lage gewesen, sie in, um zu überprüfen, und ich hatte über sie über das Wochenende vergessen)

Zum Glück in diesem Fall hatte ich getan ein „svn diff> temp.txt“ vor der Arbeit am Freitag verlassen, und die temp.txt Datei war immer noch auf meiner Festplatte, so dass ich in der Lage war, diese Datei in „Patch“ zu füttern und erholen meine verlorenen Änderungen.

Aber für meine zukünftige Referenz (das heißt das nächste Mal, wenn ich die gleichen dummen Fehler machen) ... ist es eine Möglichkeit, SVN zu sagen, ein „svn revert“ rückgängig zu machen? Does SVN eine Sicherung der lokalen halten / nicht-eingecheckten in diffs überall?

War es hilfreich?

Lösung

Nein, (absolut) NO .

Wenn Sie Subversion sagen, dass es eine Datei wiederherstellen soll, werden alle Änderungen durch den Wind gegangen.

Nur Ihr Gedächtnis kann sie zurückbekommen.

Ausnahme: Neue Dateien, die hinzugefügt hatte, nur den Status "added" verlieren, aber die Datei wird in diesem Verzeichnis bleibt, nur Status unbekannt ist ( "?")

Plattform / Software Ausnahme: Mit TortoiseSVN auf Windows, Revert wirft zunächst die Dateien in Papierkorb und kehrt sie dann. Sie können in den Papierkorb graben, um die Dateien wiederherzustellen.

Andere Tipps

Es gibt eine Lösung ... gehen Sie zu Ihrem Papierkorb Sie finden dort die neueste Version der gelöschten Datei. Schildkröte „werfen“ in den Papierkorb jede Datei, die es zurück.

Nicht wirklich Subversion spezifisch, aber wenn Sie mit Eclipse arbeiten, können Sie Ihr Glück in der lokalen Geschichte versuchen.

Nun, etwas mehr Subversion spezifische Bit: Wenn Sie nicht über einen Zweig für jede Änderung vornehmen möchten Sie tun, Sie ein paar Stamm halten können lokal ausgecheckt (Stamm-modif-1, Stamm-modif- 2 ...). Jede „Änderung“ wird auf einem separaten Baum getan und Sie nur eine Liste von denen Besuche entsprechen die Änderung halten müssen.

Oder Sie könnten Git lokal verwenden, aber ich es nie versucht.

hat vor kurzem diesen Fehler nicht neue Datei Änderungen kommen (ca. 10) auf SVN und sie alle verschwunden wegen meiner dummen Fehler. Aber was ich gerettet Fenster war „Vorgängerversionen wiederherstellen“ Option im Kontextmenü. Puh, das eine Erleichterung und Lektion gelernt wurde.

Sie können die Dateien nicht wiederherstellen, wenn Sie mit svn Kommandozeilen-Client .

Aber man kann sie wiederherstellen, wenn Sie TortoiseSVN als SVN-Client verwenden. TortoiseSVN wird sie automatisch in den Papierkorb verschieben. Sie können sie von dort wiederherstellen nach einem versehentlichen revert.

Dies ist eine konfigurierbare Option in TortoiseSVN. Es ist unter Einstellungen -> Dialog. 1 -> Verwenden Sie Papierkorb, wenn Zurücksetzen

Standardmäßig wird geprüft, welche Mittel Dateien in den Papierkorb verschoben werden. Wenn Sie wollen (meistens Sie kümmern sich nicht diese zu deaktivieren. Wenn Sie einen Grund haben, informieren Sie mich bitte auch)

Wenn Sie InteliJ verwenden, dann sind Sie ein glücklicher Mensch. Auf dem oberen Menü haben Sie eine Option Versionskontrolle, und darunter finden Sie lokale Geschichte Option, wo Sie alle die Geschichte für ausgewählte Datei, einschließlich aller den Betrieb finden Sie mit dieser Datei haben (update, commit revert).

Viel Glück, Arkde

Auch wenn Sie Ihren .NET-Code rückgängig gemacht haben (CS-Dateien etc.) und Sie haben Ihre Anwendung vor dem revert gebaut, aber nachdem Sie Änderungen vorgenommen haben, können Sie Änderungen von Baugruppendatei wiederherstellen eine der Reflektor Werkzeuge Ansicht mit Code.

ich zurück Lösung (Visual Studio + AnkhSVN) und verlieren Änderungen von wenigen Dateien. Ich kann nicht die Datei in den Papierkorb finden.

ABER:. Ich meine Verlierer Dateien mit Handy Recovery gestellt, das heißt SVN nur meine Dateien löscht auf Zurücksetzen

Verwenden Sie eine Daten-Recovery-Software zur Erholung zurück Dateien (wie Testversion Handy Recovery )

Ich war sehr glücklich, eine lokale Änderungsprotokoll der Datei (Local Revisions) in der Geschichte Browser in Eclipse zu finden. Ich hatte die Unterschiede eines nach dem anderen wurde Inspektion und ich hatte ein paar spart auf der Datei vor dem Überschreiben gemacht.

Nein, SVN nicht hält ein Protokoll oder Backup (obwohl es eine Lösung für TortoiseSVN ist in den anderen Antworten angegeben).

Aber falls jemand gerade die Antworten und bemerkte nicht, diesen Kommentar in der Frage des OP:

„Zum Glück in diesem Fall hatte ich ein done‚svn diff> temp.txt‘, bevor am Freitag der Arbeit, und die temp.txt Datei war immer noch auf meiner Festplatte, so dass ich in der Lage war, diese Datei in füttern“ Patch „und meine verlorenen Änderungen erholen.“

Ich stelle mir es ein gemeinsames Paradigma zu tun ‚svn diff‘, bevor Sie tun ein ‚svn revert‘. Wenn Sie in die Gewohnheit, dies zu tun, auch wenn der Unterschied nur an das Terminal Echo ist, haben Sie zumindest bekam einen möglichen Weg, Ihre verlorenen Änderungen wiederherzustellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top