Wenn Sie ein Verzeichnis aus einer SVN-Arbeitskopie löschen, es aber noch nicht festgeschrieben haben, ist es nicht offensichtlich, wie Sie es zurückerhalten können. Google schlägt sogar "svn rückgängig machen Löschen vor Festschreiben" als allgemeine Abfrage vor, wenn Sie "svn rückgängig machen d" eingeben, aber die Suchergebnisse sind nicht hilfreich.
edit: Ich hätte gerne eine Lösung, die in Subversion 1.4.4 funktioniert
Antworten:
svn revert deletedDirectory
Hier ist die Dokumentation für den
svn revert
Befehl.BEARBEITEN
Wenn
deletedDirectory
mitrmdir
und nicht gelöscht wurdesvn rm
, müssen Sie tunsvn update deletedDirectory
stattdessen.
quelle
svn delete
das Verzeichnis zu löschen, sondern es gelöscht verwendenrmdir
, die Sie brauchen,svn update deletedDirectory
statt.1) tun
2) Ausgabe für Fehler wie analysieren
3) Rufen Sie svn für jedes der Fehlerverzeichnisse auf:
quelle
svn up
, es zum Auschecken zu bringen, erkannte den Konflikt, tat essvn resolved foo
undsvn status
sagte mir, ich hätte ungefähr 10.000 Dateien als markiertD
.svn up
undsvn revert
bekam sie nicht zurück, aber dies löste das Problem.--recursive
dessen Hilfe der Inhalt gelöschter Verzeichnisse wiederhergestellt werden kann.Was für mich funktioniert hat ist
quelle
Führen Sie einen (rekursiven) Wiederherstellungsvorgang von einer Ebene über dem gelöschten Verzeichnis aus.
quelle
Um daraus einen Einzeiler zu machen, können Sie Folgendes ausprobieren:
quelle
Die einfachste Lösung, die ich finden konnte, bestand darin, das übergeordnete Verzeichnis aus der Arbeitskopie zu löschen (mit rm -rf, nicht svn delete) und dann svn update bei den Großeltern auszuführen. Wenn Sie beispielsweise a / b / c gelöscht haben, rm -rf a / b, cd a, svn up. Das bringt alles zurück. Dies ist natürlich nur dann eine gute Lösung, wenn Sie keine anderen nicht festgeschriebenen Änderungen im übergeordneten Verzeichnis haben, die Sie behalten möchten.
Hoffentlich steht diese Seite das nächste Mal, wenn ich diese Frage google, ganz oben auf den Ergebnissen. Es wäre natürlich noch besser, wenn jemand eine sauberere Methode vorschlagen würde.
quelle
Sie können den Ordner entfernen und das übergeordnete Verzeichnis aktualisieren, bevor Sie Folgendes festlegen:
rm -r some_dir
svn update some_dir_parent
quelle