2009-04-14 12 views
8

Ich habe nicht realisiert svn delete würde meine lokale Kopie löschen, wollte ich es nur aus dem Repository. Jetzt sind alle meine Dateien weg und sie sind auch nicht im Papierkorb. Kann ich sie irgendwie wiederherstellen?Undo SVN löschen ./* --force


ich klarstellen sollte, diese Dateien nie es in das Repository gemacht. Ich habe versucht, etwas alten Müll im Repository loszuwerden, damit ich diese einchecken konnte.

Ich benutze Ubuntu auf einem ext3-Dateisystem. Es ist okay, aber .... Ich habe es geschafft, was ich in etwa 2 Stunden gelöscht habe.

+1

Autsch. Gibt es eine Sicherung, die entweder das SVN Repo oder Ihre lokale Kopie abdeckt? Sogar versehentlich? Können Sie die Datenträgerblöcke mit einem Undelete-Dienstprogramm wiederherstellen? Vor allem, versuchen Sie nicht in Panik zu versetzen ... – RBerteig

+2

Hi Mark, wollte nur erwähnen, dass ich gerade durch das gleiche Problem gegangen bin, obwohl ich 'svn remove' verwendet habe, die ich dachte, würde nicht dasselbe tun wie' svn delete' . Es gab sogar eine Nachricht, die mich fragte, ob ich das wirklich tun möchte, aber diese Nachricht zeigte nicht an, dass meine Dateien lokal gelöscht würden. Ich denke, sie sollten diese Botschaft angemessener machen. –

+1

@Brian: Ja, ich weiß eh !? Furchtbar! – mpen

Antwort

3

Nein.

Nicht, es sei denn, sie werden noch von einer anderen Anwendung verwendet, tut mir leid.

+0

Was erinnert mich, ist jemand anderes an diesem Projekt? Sie könnten eine Kopie haben. –

+0

Nein, NetBeans schließen Dateien gerne, wenn sie aus irgendeinem Grund gelöscht werden ... sonst wäre sie immer noch im Speicher. – mpen

+0

Viele IDEs neigen dazu, automatisch zu öffnen, wenn sie im Vordergrund stehen. Dies dient hauptsächlich dazu, den Entwicklungsprozess zu unterstützen, wenn ein entfernter Prozess einen Teil einer Datei modifiziert, so dass Sie weiterarbeiten können, so dass Sie keine Version auf der Festplatte erhalten und eine Version, die im Speicher ist. –

1

Können Sie nicht einfach in einem neuen Verzeichnis nachsehen, was Sie gerade gearbeitet haben? Wenn Sie Änderungen hatten, die nicht versioniert wurden, sind Sie SOL, alles andere können Sie einfach auf die neueste Version im Repository zurücksetzen.

+0

Leider nicht. Ich habe versucht, sie im Repository zu überprüfen, aber es gab einige Konflikte mit einigen älteren Dateien im Repository. Ich habe versucht, die zu löschen, damit ich die neuen Sachen einchecken konnte ... nun, das geht wirklich. – mpen

+1

das ist genau die Art von was ein DVCS hilft - Sie committen lokal, bevor Sie zusammenführen. denke, du wirst es als Erfahrung –

+0

@jk setzen müssen. Nahm mich eine Weile um DVCS herum, aber ich genieße es jetzt wirklich. – mpen

0

Sie haben den Befehl 'svn delete' verwendet und die lokale Kopie gelöscht. Es bedeutet, dass Originalversionen von Dateien noch im SVN-Verlauf vorhanden sind. 'svn delete' löscht den Verlauf der Datei nicht aus dem Repository. Sie können die letzte Version auf folgende Weise wiederherstellen:

  1. Überprüfen Sie das SVN-Protokoll und finden Sie die Revisionsnummer von "Operation löschen".
  2. Verwenden Sie 'svn checkout', um die Revision direkt vor dem 'Löschvorgang' zu überprüfen. (ZB bei Revisionsnummer des Löschvorganges 100 Besuche die Revisionsnummer 99) svn checkout --revision
+1

Lokale Änderungen, die er vorgenommen hat, sind nicht im Revision Repo und somit kann er diese nicht wiederherstellen. –

+0

sah gerade den Kommentar "Ich sollte klarstellen, diese Dateien wurden nie in das Repository geschafft." Irgendwie habe ich es nicht bemerkt, als ich die Antwort schrieb –

0

auf Ihrem SVN-Client Je sollten Sie diese Dateien aus einer früheren Version mit „Show bekommen können Log“als in Tortoise genannt ...

öffnen Sie einfach das Protokoll eine Revision finden, wo diese Datei noch da war und‚zurückkehren zu dieser Revision‘

0

Wenn Sie unter Windows sind, können Sie überprüfen die (teilweise) freier Werkzeugname zero assumption recovery. Wirklich hilft, wenn Sie Dateien auf Windows löschten!

Oder, wenn Sie es aktiviert haben und Sie Vista verwenden, können Sie die "vorherigen Versionen" Ihres Ordners in den Eigenschaften davon überprüfen.

hoffe es hilft! Viel Glück.

0

Sie führen Befehl Svn Log und erhalten Sie die Revisionsnummer der unglücklichen Löschung. dann laufen svn -r2572 fusionieren: 2571 svn: // $ PATH_WHERE_YOU_DELETED_NUMBER_WAS_ON_SVN_SERVER & LOCAL_PATH_WHERE_TO_SAVE_FILE

wo -r die Revisionsnummern sind

Beispiel merge -r2572: 2571 svn: //www.jane16.com /var/opt/svn/mypoject/Start.java C:/ecplipse/workspace/myporject/Start.java

1

in die Datei-Verzeichnis gehen,

svn revert "filename" 

wird jede Datei lokal gelöscht wiederherstellen, aber nicht verpflichtet, aber bereits unter Versionskontrolle.

+0

"nie in das Repository gemacht" - also nicht versionsgesteuert – mpen