2011-11-15 12 views
142

Si quiero tirar a la basura todos mis cambios y volver al código que se encuentra en el repositorio, hago lo siguiente:¿svn tiene un comando `revert-all`?

$ rm -fr * 
$ svn up 

Esto es bastante fácil, pero me pregunto si hay una mando único que va a lograr esto, algo como:

$ svn revert-all 
+0

Quién utiliza -fr en lugar de rf? Hay una razón por la que se pronuncia rimraf, no rimfer. –

+0

@JimmyHoffa ¿Cuál es el motivo? –

+1

Wilson de la convención! Convenciones, señor! Sin nuestra disciplina y tradiciones culturales, ¡no somos más que salvajes! Yo digo, buenos días señor! –

Respuesta

275

que podría hacer:

svn revert -R . 

Este no eliminará ningún archivo nuevo que no esté bajo control de versión. Pero se puede escribir fácilmente un script de shell para hacer eso como:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done 
+1

Bienvenido a SO, y gracias por una respuesta exhaustiva, ya que 'svn revert -R' no es equivalente a los dos comandos que di. –

+1

Para eliminar todos los archivos que no están bajo control de versión en la línea de comandos de Windows, la respuesta está aquí: http://stackoverflow.com/a/1502365/1385429 –

+0

Usuario [mashzo] (http://stackoverflow.com/users/3745505/ mashzo) señaló (en una respuesta ahora eliminada) que el indicador '-R' puede ser necesario para garantizar que los directorios no versionados también se eliminen, como parte de tirar * todos * los cambios. Considere incorporar esto en su respuesta, si eso le parece apropiado. –

23

Hay un comando

svn revert -R . 

O
se puede utilizar el --depth = infinito, que en realidad es igual al anterior:

svn revert --depth=infinity 

svn revert es intrínsecamente peligrosa, ya que toda su propósito es para tirar de datos, a saber, los cambios no confirmados. Una vez que haya revertido, Subversion proporciona ninguna manera de recuperar esos cambios no confirmados

+6

'-R' es equivalente a' --depth = infinito' –

+4

Tu cmd " svn revert -R "falta el directorio actual en la sintaxis ... debe ser" svn revertir -R ". – boddhisattva

+0

Sí edité mi respuesta en consecuencia. :-) –

17

Use el interruptor recursiva --recursive (-R)

svn revert -R . 
0

Para revertir los archivos modificados:

sudo svn revert 
svn status|grep "^ *M" | sed -e 's/^ *M *//' 
+0

Creo que mi cambio de formato representa lo que desea. Revertir si no te gusta. Y gracias, es bueno recordar los malos viejos tiempos de SVN ... :) –

Cuestiones relacionadas