Keine der Antworten hier war genau das, was ich wollte. Folgendes habe ich mir ausgedacht:
# Recursively revert any locally-changed files
svn revert -R .
# Delete any other files in the sandbox (including ignored files),
# being careful to handle files with spaces in the name
svn status --no-ignore | grep '^\?' | \
perl -ne 'print "$1\n" if $_ =~ /^\S+\s+(.*)$/' | \
tr '\n' '\0' | xargs -0 rm -rf
Getestet unter Linux; mag in Cygwin funktionieren, basiert aber (glaube ich) auf einer GNU-spezifischen Erweiterung, die es xargs ermöglicht, basierend auf '\0'
anstelle von Leerzeichen zu teilen .
Der Vorteil des obigen Befehls besteht darin, dass zum Zurücksetzen der Sandbox keine Netzwerkaktivität erforderlich ist. Sie bekommen genau das, was Sie vorher hatten, und Sie verlieren alle Ihre Änderungen . (Haftungsausschluss, bevor mich jemand beschuldigt, dass dieser Code seine Arbeit zerstört) ;-)
Ich verwende dieses Skript auf einem kontinuierlichen Integrationssystem, auf dem ich sicherstellen möchte, dass nach einigen Tests ein sauberer Build ausgeführt wird.
Bearbeiten : Ich bin nicht sicher, ob dies mit allen Versionen von Subversion funktioniert. Es ist nicht klar, ob der svn status
Befehl immer konsistent formatiert ist. Die Verwendung erfolgt auf eigenes Risiko, wie bei jedem Befehl, der einen solchen Pauschalbefehl verwendet rm
.