Obtener y respaldar los últimos archivos modificados en el SVN

A veces cuando estas trabajando en un proyecto es necesario hacer un respaldo diferencial de todos los archivos que han sido modificados desde una fecha dada, esto para poder subirlos a producción, sustituyendo únicamente los archivos que han cambiado, en lugar de subir todo de nuevo.

El proyecto en el que estoy trabajando tiene cientos de archivos, pero solo unos pocos fueron modificados para esta entrega, para obtener la lista de archivos que cambiaron hay que usar el comando:

svn diff -r {2013-05-30}:HEAD --summarize > lista.txt

Este comando le dice al svn que haga una lista de todos los archivos que han cambiado desde el día 2013-05-30 hasta la ultima actualización y que lo ponga en el archivo lista.txt este archivo se vera como esto:

A    components/com_opencart/admin/controller/sale/CBB/logo.png
M   components/com_opencart/admin/controller/sale/CBB/factura2.png
M   components/com_opencart/admin/controller/sale/order_pdf.php

Para lo que vamos a hacer a continuación hay que eliminar la letra que aparece al inicio de cada linea. Podríamos hacer un script pero podemos usar algún editor de texto y substituir los caracteres y espacios por ‘nada’, eliminando así todo lo que aparece antes del nombre.

Para que quede asi:

components/com_opencart/admin/controller/sale/CBB/logo.png
components/com_opencart/admin/controller/sale/CBB/factura2.png
components/com_opencart/admin/controller/sale/order_pdf.php

Ademas seria bueno eliminar de la lista todos los archivos de configuración del proyecto que generalmente tiene el usuario y password de la base de datos y algunos otros datos que solo son validos en producción y que no queremos sobrescribir.

Ahora ya puedes usar el comando:

tar -cvf Respaldo.tar $(cat lista.txt)

Para crear un archivo Respaldo.tar que contendrá todos lo archivos de la lista. Este archivo puedes entregarlo y quien se encargue de ponerlo en producción deberá teclear:

tar -xvf Respaldo.tar

Para restaurar los archivos contenidos, estos quedaran en sus carpetas correspondientes.

 

 

Eric Ruiz Osornio (Zeru). Instituto Politécnico Nacional, México. Gamer de StarCraft2, coder y administrador de proyectos.

Facebook Twitter 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *