¿Svn tiene un comando `revert-all`?

159

Si quiero descartar todos mis cambios y volver al código que está en el repositorio, hago lo siguiente:

$ rm -fr *
$ svn up

Esto es bastante fácil, pero me pregunto si hay un solo comando que logre esto, algo como:

$ svn revert-all
Eric Wilson
fuente
¿Quién usa -fr en lugar de -rf? Hay una razón por la que se pronuncia rimraf, no rimfer.
Jimmy Hoffa
@JimmyHoffa ¿Cuál es la razón?
Eric Wilson
3
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!
Jimmy Hoffa
Consulte también: stackoverflow.com/questions/239340/… | stackoverflow.com/questions/6204572/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Respuestas:

306

Podrías hacerlo:

svn revert -R .

Esto no eliminará ningún archivo nuevo que no esté bajo control de versiones. Pero 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
Juan carlos muñoz
fuente
2
Bienvenido a SO, y gracias por una respuesta completa, ya svn revert -Rque no es equivalente a los dos comandos que di.
Eric Wilson
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í: stackoverflow.com/a/1502365/1385429
Christiaan Westerbeek
El usuario mashzo señaló (en una respuesta ahora eliminada) que la -Rmarca puede ser necesaria para garantizar que los directorios no versionados también se eliminen, como parte de descartar todos los cambios. Considere incorporar esto en su respuesta, si eso le parece apropiado.
Jeremy Banks
27

Hay un comando

svn revert -R .

O
puede usar --depth = infinity, que en realidad es el mismo que el anterior:

svn revert --depth=infinity 

svn revertes intrínsecamente peligroso, ya que su único propósito es descartar datos, es decir, sus cambios no confirmados. Una vez que haya revertido, Subversion no proporciona forma de recuperar esos cambios no confirmados

bilash.saha
fuente
77
-Res equivalente a--depth=infinity
Michael Burr
44
A su cmd "svn revert -R" le falta el directorio actual en la sintaxis ... debería ser "svn revert -R".
boddhisattva
Actualmente, parece que la publicación -Res mutuamente exclusiva de --depth-infinitycuando no lo es.
ahnbizcad
@ahnbizcad ¿No son esos dos sinónimos exactos de todos modos?
Nyerguds
Ese es mi punto. Esta respuesta hace que los dos suenen diferentes cuando no lo es. "mutuamente exclusivo" = opuesto al sinónimo
ahnbizcad
17

Use el interruptor recursivo --recursivo (-R)

svn revert -R .
Chris
fuente
0

Para revertir archivos modificados:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'
Taylor Hawkes
fuente
Creo que mi cambio de formato representa lo que quieres. Rollback si no te gusta. Y gracias, es bueno recordar los viejos tiempos de SVN ... :)
Eric Wilson