Hat svn einen Befehl "Alles zurücksetzen"?

159

Wenn ich alle meine Änderungen wegwerfen und zu dem Code zurückkehren möchte, der sich im Repository befindet, gehe ich wie folgt vor:

$ rm -fr *
$ svn up

Das ist einfach genug, aber ich frage mich, ob es einen einzigen Befehl gibt, der dies erreicht, etwa:

$ svn revert-all
Eric Wilson
quelle
Wer verwendet -fr anstelle von -rf? Es gibt einen Grund, warum es Rimraf ausgesprochen wird, nicht Rimfer.
Jimmy Hoffa
@ JimmyHoffa Was ist der Grund?
Eric Wilson
3
Wilson des Konvents! Konventionen, Sir! Ohne unsere Disziplin und kulturellen Traditionen sind wir nur Wilde! Ich sage, guten Tag, Sir!
Jimmy Hoffa
Siehe auch: stackoverflow.com/questions/239340/… | stackoverflow.com/questions/6204572/…
Ciro Santilli 法轮功 冠状 冠状 病. 事件 12.

Antworten:

306

Du könntest es tun:

svn revert -R .

Dadurch werden keine neuen Dateien gelöscht, die nicht der Versionskontrolle unterliegen. Sie können jedoch einfach ein Shell-Skript schreiben, um Folgendes zu tun:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done
Juan Carlos Muñoz
quelle
2
Willkommen bei SO und vielen Dank für eine gründliche Antwort, da dies svn revert -Rnicht den beiden Befehlen entspricht, die ich gegeben habe.
Eric Wilson
1
Zum Entfernen aller Dateien, die nicht der Versionskontrolle in der Windows-Befehlszeile unterliegen, lautet
Christiaan Westerbeek
Benutzer mashzo wies (in einer jetzt gelöschten Antwort) darauf hin, dass das -RFlag möglicherweise erforderlich ist, um sicherzustellen, dass auch nicht versionierte Verzeichnisse gelöscht werden, um alle Änderungen wegzuwerfen . Erwägen Sie, dies in Ihre Antwort aufzunehmen, wenn Ihnen dies angemessen erscheint.
Jeremy Banks
27

Es gibt einen Befehl

svn revert -R .

ODER
Sie können --depth = unendlich verwenden, was tatsächlich dasselbe ist wie oben:

svn revert --depth=infinity 

svn revertist von Natur aus gefährlich, da der gesamte Zweck darin besteht, Daten wegzuwerfen, nämlich Ihre nicht festgeschriebenen Änderungen. Sobald Sie zurückgesetzt haben, bietet Subversion keine Möglichkeit, diese nicht festgeschriebenen Änderungen zurückzugewinnen

bilash.saha
quelle
7
-Rist gleichbedeutend mit--depth=infinity
Michael Burr
4
Ihrem cmd "svn revert -R" fehlt das aktuelle Verzeichnis in der Syntax. Es sollte "svn revert -R" sein.
Boddhisattva
Derzeit klingt der Beitrag so -R, --depth-infinityals würde er sich gegenseitig ausschließen, wenn dies nicht der Fall ist.
Ahnbizcad
@ahnbizcad Sind diese beiden genauen Synonyme nicht überhaupt?
Nyerguds
Das ist mein Punkt. Diese Antwort lässt die beiden unterschiedlich klingen, wenn es nicht so ist. "sich gegenseitig ausschließen" = Gegenteil von Synonym
ahnbizcad
17

Verwenden Sie den rekursiven Schalter --recursive (-R)

svn revert -R .
Chris
quelle
0

So setzen Sie geänderte Dateien zurück:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'
Taylor Hawkes
quelle
Ich denke, meine Formatierungsänderung repräsentiert, was Sie wollen. Rollback, wenn es dir nicht gefällt. Und danke, es ist gut, sich an die schlechten alten Zeiten von SVN zu erinnern ... :)
Eric Wilson