¿Cómo veo una versión anterior de un archivo SVN?

156

Tengo un archivo SVN al que ahora le falta algo de lógica, por lo que necesito retroceder unas 40 revisiones al momento en que tenía la lógica que necesitaba. Además de tratar de ver un archivo diff en la línea de comando ( muy difícil de leer ), ¿hay alguna forma de obtener una copia de ese archivo para revisar y poder estudiarlo para recuperar partes?

Xeoncross
fuente

Respuestas:

237

Puede actualizar a una revisión anterior:

svn update -r 666 file

O simplemente puede ver el archivo directamente:

svn cat -r 666 file | less
John Kugelman
fuente
13
svn cat -r 666 file | lesses perfecto para que pueda leerlo con vim!
Xeoncross
44
@sillyMunky Inténtalo svn cat | vim -. Si el resaltado de sintaxis de vim no se activa automáticamente, haga :set syntax=java(o cualquier idioma).
John Kugelman
1
Muchas gracias John, en realidad estoy en Debian y descubrí que hay un pequeño paquete de resaltado de sintaxis llamado 'source-highlight', por lo que menos puede recoger automáticamente el resaltado de sintaxis (en realidad ahora alias esto a menos para distinguirlo).
sillyMunky
2
svn cat -r 666 file> file_666.js si desea ver todo el archivo: p
Parijat Kalia
o si está usando bash vim +set\ ft=<FILETYPE> <( svn cat -r <REV> <FILE> )
h4unt3r
5

También es interesante comparar el archivo de la revisión de trabajo actual con el mismo archivo de otra revisión.

Puedes hacer lo siguiente:

$ svn diff -r34 file
Kreshnik
fuente
2

Actualización a una revisión específica:

svn up -r1234 file
Chris
fuente
1

Creo que la mejor manera de ver las revisiones es usar un programa / aplicación que te lo facilite. Me gusta usar trac: http://trac.edgewall.org/wiki/TracSubversion

Proporciona un excelente navegador svn y hace que sea realmente fácil volver a través de sus revisiones.

Puede ser un poco exagerado configurar esto para una revisión específica que desea verificar, pero podría ser útil si va a hacer esto mucho en el futuro.

wajiw
fuente
1

Con las últimas versiones de Subclipse , puede verlas sin usar el indicador de cmd. En el archivo, simplemente haga clic derecho => Equipo => Cambiar a otra rama / etiqueta / revisión. Además del campo de revisión, hace clic en Seleccionar y verá todas las versiones de ese archivo.

Kheem
fuente
1

Para responder directamente a la pregunta de cómo "obtener una copia de ese archivo":

svn cat -r 666 file > file_r666

entonces puede ver el recién creado file_r666con cualquier programa de comparación o visor, por ejemplo

kompare file_r666 file

Muestra muy bien las diferencias.

Publiqué la respuesta porque los comandos de la respuesta aceptada en realidad no dan una copia del archivo y porque svn cat -r 666 file | vimno funciona con mi sistema ( Vim: Error reading input, exiting...)

rehctawrats
fuente