Subversion y las versiones anteriores: usando merge, revert y diff

4 Marzo 2008

Subversion

En un proyecto en el que estoy trabajando me he encontrado que, tras usar una rama experimental de Django (lo siento Maestro Fer, hijo de Ruby, conocido como “el que navega a hombros de Rails” [1] y [2]) habíamos cambiado nuestro modelo de datos de forma tan drástica que teníamos que volver atrás, depués de nuestro desagradable paso por las ramas experimentales.

Vamos, que teníamos que devolver un fichero al estado de una revisión anterior. Para ello, simplemente hacemos:

$ svn merge -rHEAD:543 models.py
U models.py

Como vemos es muy sencillo y se trata exactamente igual que si fuera un merge de otra rama. HEAD es la versión (rama) actual de desarrollo y 543 el número de revisión (rama) al que queremos volver. Evidentemente, hay que hacer commit para que estos cambios queden reflejados en el repositorio.

Si lo que queremos es volver a la versión original del fichero, porque hemos realizado cambios y no nos gustan, también podemos usar revert:

$ svn revert models.py
Se revirtió 'models.py'

Otras veces nos interesa ver el contenido de una versión concreta de un fichero, para ello podemos utilizar:

$ svn cat -r543 models.py
(... montón de contenido del fichero ...)

Incluso podemos comparar distintas versiones de un mismo fichero, utilizando diff:

$ svn diff -rHEAD:542 models.py
(... diff entre las dos versiones ...)

Finalmente, comentar que estos comandos no funcionan únicamente con ficheros concretos, sino que los podemos utilizar con directorios, por ejemplo para volver a una versión concreta de un directorio o para obtener los cambios realizados en todo el repositorio desde una versión determinada.

El el próximo post explicaré cómo utilizar estos diffs para crear parches y cómo aplicarlos (y desaplicarlos) correctamente al código (o a una rama de código).

[1] En homenaje a Bernardo de Chartres
[2] Y con el estilo de Tolkien, claro.

Programación, Tecnología, Web | Comentarios | Trackback Saltar al inicio de la página

Al habla

  •  
  •  
  •  

Puedes estar al tanto de nuevos comentarios con el feed de los comentarios.

Al fin y al cabo todo es cuestión de unos y ceros…




Archivos

Meta