A todos nos ha pasado que por "accidente" subimos un archivo al repositorio cuando no tenia porque subirse. Esto podria provocar un caos si este archivo contiene cierta configuracion de como corre el proyecto (puertos, rutas, etc.).
Una forma de regresar los cambios es obtener el archivo de la revision inmediata anterior y cambiar el contenido del archivo de la revision actual por el contenido del archivo de la revision inmediata anterior. Pero obviamente eso no es la mejor forma.
La mejor forma es usar el comando "merge" de subversion. Lo primero que tenemos es obtener el numero de revision actual del archivo y el numero de revision inmediato anterior (OJO: no necesariamente van a ser consecutivos).
Para estos numeros de revision usamso el comando "log":
$> svn log ruta-al-archivo
el cual nos va a imprimir un listado del log del archivo donde imprime los numeros de revision tambien.
De este listado que sale copiamos el primer numero de revision (el numero de revision actual) y el segundo (el numero de revision inmediato anterior).
Una vez que tenemos estos numeros de revision usamos el comando "merge" de la siguiente forma:
$> svn merge -r Revision-Actual:Revision-Anterior ruta-al-archivo
con esto el subversion imprimira un mensaje como:
--- Reverse-merging rRevision-Actual through rRevision-Anterior into 'ruta-al-archivo':
U ruta-al-archivo
Ya con esto el archivo aparecera como modificado en nuestra copia de trabajo, para verificarlo podermos ver su estatus con:
$> svn st ruta-al-archivo
Entonces nuestro archivo ya estará con el contenido de la versión antes de que lo subiéramos por accidente.
Ya solo nos faltaria darle "commit" para subirlo al repositorio y evitar causarle problemas al equipo de trabajo al usar la versión que se subió por "accidente".
Hay que notar que perderíamos el contenido del archivo que subimos por accidente, así pues, habría que respaldarlo antes de hacer todo este show por si todavía nos interesa usar ese archivo de manera "local".
Welcome to my corner of the internet! I'm a Software Developer trying to improve my craft every day
Showing posts with label Subversion. Show all posts
Showing posts with label Subversion. Show all posts
Wednesday, March 25, 2009
Thursday, March 5, 2009
Comandos de subversion utiles para ver los logs
Para aquellos que trabajamos con subversion muchas veces tenemos la necesidad de ver el historial de logs de nuestra copia del repositorio (o del repositorio remoto).
Para ver el log ya sea de una cierta ruta o de un archivo se usa el comando:
Incluso, se pueden ver los logs del repositorio remoto con el comando:
Si usamos el comando con la opcion -v (verbose):
en el log se incluyen los archivos involucrados con el cambio.
Si deseamos saber el log y los archivos involucrados en una cierta revision usamos el comando:
o si lo que queremos es ver el log de cambios en un rango de revisiones:
Ahora, cuando trabajamos con subversion y acostumbramos crear ramas (branches) del codigo para realizar los cambios sobre estas ramas para despues integrarlos a la ruta principal del repositorio de codigo (trunk) a veces requerimos de ver los logs desde el momento mismo en que la rama fue creada, esto se logra usando la opcion stop-con-copy en el comando para ver los logs de la siguiente forma:
Para ver el log ya sea de una cierta ruta o de un archivo se usa el comando:
$> svn log ruta
Incluso, se pueden ver los logs del repositorio remoto con el comando:
$> svn log http://ruta/al/repositorio
Si usamos el comando con la opcion -v (verbose):
$> svn log path -v
en el log se incluyen los archivos involucrados con el cambio.
Si deseamos saber el log y los archivos involucrados en una cierta revision usamos el comando:
$> svn log archivo -v -r numero-de-revision
o si lo que queremos es ver el log de cambios en un rango de revisiones:
$> svn log path -v -r numero-revision-inicial:numero-revision-final
Ahora, cuando trabajamos con subversion y acostumbramos crear ramas (branches) del codigo para realizar los cambios sobre estas ramas para despues integrarlos a la ruta principal del repositorio de codigo (trunk) a veces requerimos de ver los logs desde el momento mismo en que la rama fue creada, esto se logra usando la opcion stop-con-copy en el comando para ver los logs de la siguiente forma:
$> svn log path -v --stop-on-copy
Subscribe to:
Posts (Atom)