2008-10-29 17 views
94

He cometido un montón de archivos (docenas de archivos en diferentes carpetas) por accidente. ¿Cuál es la forma más fácil, más limpia (¡y la más segura!) De 'deshacer' la confirmación sin tener que eliminar los archivos de mi directorio de trabajo.Deshacer una confirmación en TortoiseSVN

Respuesta

142

Ir a Mostrar registro de pantalla, seleccione la revisión que desea deshacer, haga clic derecho en él y seleccione Revertir cambios de esta revisión, esto va a hacer un reverse-merge.

+8

Eso es lo que esperaba, pero no hay señal en la última versión de tortuga –

+37

No se olvide de confirmar después, ya que simplemente se fusiona localmente. – pihentagy

+4

Asegúrese de actualizar su copia de trabajo antes de hacer esto, de lo contrario no pasa nada. –

2

Puede revertir su copia de trabajo a la revisión antes de la confirmación. Una vez que haya revertido su copia de trabajo, simplemente confirme los cambios y efectivamente retrotraerá la confirmación accidental.

En un caso como el suyo específicamente, probablemente verifique la revisión que quería revertir en una nueva copia de trabajo y luego confirme la copia de trabajo en la revisión principal.

+4

¿Esto no le indicaría que su revisión está desactualizada y es necesario que actualice antes de comprometerse? Creo que debe fusionar la revisión anterior en lugar de simplemente actualizarla a la anterior. – Mnebuerquo

+0

Además, esta estrategia supone que el compromiso incorrecto es el anterior. Es posible que desee deshacer algunos cambios que sucedieron hace un tiempo, sin deshacerlos todos. – jpaugh

14

Puede necesitar usar la línea de comando, pero puede usar el comando de fusión SVN y especificar las revisiones en reversa para revertir una confirmación de manera efectiva. Suponiendo que su compromiso incorrecto fuera r1123, lo haría:

svn merge -r1123:1122 <url of your working copy> 
+0

Nada cambia cuando me gusta esto: svn merge -r 1880: 1879 https: // server/myproject/branches/problem42 I han intentado ambos con espacio como este "-r 1880: 1879" y sin espacio como este "-r1880: 1879". Si ejecuto "svn st" luego, nada ha cambiado. – neoneye

Cuestiones relacionadas