Programador PHP freelance

Deshacer modificaciones en Subversion

Antiguamente trabajaba con CVS y ya me parecía maravilloso poder disfrutar de un sistema de control de versiones. El que ha trabajado con uno sabe de lo que hablo. El que no lo haya hecho, se lo recomiendo. Una vez lo pruebas no sabes vivir sin él 😉

Ya hace unos años que me pase a Subversion, también conocido como SVN, y ahora estoy más contento aún.

El caso es que en uno de mis trabajos a alguien se le ha ido la mano y ha eliminado todo el contenido del directorio trunk del proyecto con lo cual la última revisión de ese directorio está vacía. Se puede realizar un export de la versión anterior y subirlo como ficheros pero existe otra forma más rápida, en solo una linea.

Imaginemos que estamos en el raíz de nuestro proyecto en la última revisión, la HEAD, que en este caso coincide con la revisión 50. En esta versión, como hemos dicho, se ha eliminado todo lo que colgaba de trunk y queremos recuperarlo de la versión anterior, la 49. Esta es la linea.

svn merge -r 50:49 http://svn.example.com/repos/example

Con este comando le pedimos a Subversion que haga un merge desde la revisión 49 a la 50 para el proyecto example. Subversion añadirá por nosotros todos los ficheros que colgaban de trunk por lo que tendremos una nueva revisión 51 donde volveremos a disponer de los ficheros eliminados.