Pregunta

Supongamos que tengo un conjunto de confirmaciones en una carpeta del repositorio...

123 (250 new files, 137 changed files, 14 deleted files)
122 (150 changed files)
121 (renamed folder)
120 (90 changed files)
119 (115 changed files, 14 deleted files, 12 added files)
118 (113 changed files)
117 (10 changed files)

Quiero obtener una copia de trabajo que incluya todos los cambios desde la revisión 117 en adelante, pero NO incluya los cambios de las revisiones 118 y 120.

EDITAR:Quizás para aclarar el problema, quiero deshacer los cambios que se realizaron en 118 y 120 conservando todos los demás cambios.La carpeta contiene miles de archivos en cientos de subcarpetas.

¿Cuál es la mejor manera de lograr esto?

La respuesta, gracias a Bruno y Bert, es el comando (en este caso, para eliminar 120 después de realizar la fusión completa)

svn merge -c -120 .

Tenga en cuenta que el número de revisión debe especificarse con un signo menos al principio.'-120' no '120'

¿Fue útil?

Solución

Para deshacer las revisiones 118 y 120:

svn up -r HEAD       # get latest revision
svn merge -c -120 .  # undo revision 120
svn merge -c -118 .  # undo revision 118
svn commit           # after solving problems (if any)

Ver también la descripción en Deshacer cambios.

Tenga en cuenta el menos en el -c -120 argumento.El -c (o --change) el interruptor es compatible desde Subversion 1.4, las versiones anteriores pueden usar -r 120:119.

Otros consejos

Hay una manera más sencilla si usa TortoiseSVN, un cliente de Windows para Subversion.Simplemente haga clic para ver el registro en su copia de trabajo actualizada, seleccione las revisiones que desea deshacer, haga clic derecho y seleccione "Revertir cambios de estas revisiones".

Es una operación segura porque los cambios se aplican solo en su espacio de trabajo.Aún tienes que comprometerte a modificar tu repositorio.

Es una de las mejores características de TortoiseSVN.Siempre he sido un tipo de línea de comandos, pero Tortoise cambió de opinión.

Supongo que podrías crear una rama a partir de la revisión 117 y luego fusionar todo excepto 118 y 120.

svn copy -r 117 source destination

Luego revisa esta sucursal y desde allí haz svnmerge.py merge -r119,120-123

EDITAR: Esto no deshace las revisiones en la rama/tronco.Usar svn merge en cambio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top