2010-07-01 17 views
11

Supongamos que estoy en la revisión 50. Pero, quiero volver a la revisión 45, y confirmar como la versión estable.¿Cómo puedo volver a una confirmación previa de SVN?

¿Cómo hago eso, de la manera más simple?

  1. ¿Qué sucede si quiero hacer eso con un solo archivo?
  2. ¿Qué sucede si quiero hacer eso con todo el repositorio?
+0

duplicado posible de [Revertir una carpeta SVN a una revisión anterior] (http://stackoverflow.com/questions/2324999/revert-a-svn-folder-to-a- revisión previa). Tenga en cuenta que a svn no le importa si el destino es un archivo, una carpeta o la raíz del repositorio. – sbi

Respuesta

23

I' No estoy seguro de lo que quiere decir con "volver a comprometerse como la versión estable", pero dependiendo de lo que esté intentando lograr, lo recomiendo:

svn update -r45
Esto rebase su copia de trabajo en la revisión 45.

o:

svn merge -c -50, -49, -48, -47, -46
Esto actualizará (mediante la fusión inversa) su copia de trabajo eliminando todos los cambios entre 45 y 50. Ahora, si realiza cambios y confirma, será como si hubiera eliminado 46-50 del repositorio y realizado la revisión HEAD (51?) Ser r45 + tu cambio.

+0

para la versión anterior, svn update -r PREV – diewland

4

Reverse merge aquellas revisiones que desea deshacer. Esto se puede hacer en uno o varios archivos. Mediante la fusión inversa, su copia de trabajo cambia al estado sin esa revisión, que luego puede confirmar.

-2

Creo que una manera simple debe ser la siguiente:

  • la caja de revisión 45 en un directorio temporal
  • copiar uno o alle archivos en el directorio de trabajo
  • cometer
+0

Consulte "¿Por qué no usar parches en su lugar?" en el [libro SVN] (http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.branchemerge.basicmerging.stayinsync) por qué debe evitar la fusión manual. – sbi

+0

¡Gracias por la pista! – splash

0

sólo tiene que hacer una actualización de la revisión utilizando

svn up -r 45 

pero esto no dejará enviar los cambios como SVN que necesita para actualizar su copia de trabajo a la cabeza antes de que pueda cometer. Lo que puede hacer en su lugar es

svn merge -r HEAD:45 yourFile 
svn ci yourFile -m "Reverting back to rev 45" 
Cuestiones relacionadas