Mantener ficheros de configuración con Subversion

Arco

Se trata de usar subversion para controlar los cambios en un directorio, normalmente ficheros de configuración, para que si metes la pata, puedes saber qué demonios has cambiado.

Esta maniobra puede resultar peligrosa. El autor de este documento elude toda responsabilidad. Laughing out loud

Entra como superusuario y ve al directorio raíz

user@my-box:~$ su
root@my-box:/home/user# cd /

Crea un directorio vacio, por ejemplo, dummy. Esto es una chapucilla, si alguien sabe cómo hacerlo mejor que lo diga.

root@my-box:/# mkdir dummy

Crea un nuevo módulo para tu máquina en el repositorio que vayas a usar (en este caso un repo remoto en server:/svn/etc) indicando sólo el directorio recién creado.

root@my-box:/# svn import dummy http://server/svn/etc/my-box/dummy
Password : Pulsa ENTER
Username: user
Password: ******
root@my-box:/#

Borra el directorio dummy y haz checkout del repo.

root@my-box:/# rmdir dummy
root@my-box:/# svn co http://server/svn/etc/my-box ./

Añade los directorios (en modo no recursivo) en los que haya ficheros que quieras mantener controlados. El repo se utiliza de la forma habitual, pero con más cuidado Laughing out loud

root@my-box:/# svn add -N etc
root@my-box:/# svn add etc/passwd
root@my-box:/# svn add etc/fstab
root@my-box:/# svn ci

El directorio dummy se puede eliminar ahora:

root@my-box:/# svn del dummy

Otra manera de hacerlo

Existe otra manera de hacer esto mismo sin necesidad de incluir el fichero dummy que, en definitiva se queda para siempre en el repo, aunque lo borres.

Bájate el repo y crea el directorio donde quieras añadir tu directorio.

root@my-box:~/repo/$ svn co -N http://server/svn/etc/ config
root@my-box:~/repo/$ cd config
root@my-box:~/repo/config$ svn mkdir my-box
root@my-box:~/repo/config$ svn ci -m “configuración de my-box”

Con lo anterior se ha creado un directorio .svn en ese directorio. Ahora copia el directorio .svn creado al directorio inicial de tu configuración (a lo mejor necesitas permisos de root):

root@my-box:~/repo/config# cp -r my-box/.svn /

Ahora ve añadiendo toda la ruta (en modo no recursivo) hasta meter los directorios que quieras controlar, y, una vez hecho eso, añade los ficheros que desees:

root@my-box:/# svn add -N etc
root@my-box:/# svn add -N etc/afbackup
root@my-box:/# svn add etc/afbackup/server.conf
root@my-box:/# svn add etc/afbackup/changer.conf

Haz efectivos los cambios en el directorio donde copiaste el .svn

root@my-box:/# svn ci

Referencias

  • Subversion personal
  • subversion
  • FAQ Subversion
  • Version Control with Subversion
  • A Novices Tutorial on Subversion
  • Subversion
  • Guía de referencia Debian