dissabte, de desembre 04, 2010

Ús del Subversion, pas a pas

Malgrat està una mica "passat de moda" i els projectes mínimament grans sembla s'han passat tots a git o mercurial, Subversion encara és útil en molts casos... A continuació un pas a pas realitzat en un Ubunu 10.04 (LTS) Server, esquemàtic, de com posar en marxa un repositori i la seva utilització bàsica com a "client" del repositori des de la línia de comandes.
De tota manera per als clients, des de la meva experiència, és recomanable usar alguna eina gràfica, i les més recomanables són el TortoisSVN pels clients Windows i el Rabbitvcs per GNU/Linux, apart, és clar, del plug-in Subclipse si es desenvolupa des d'Eclipse.


INSTAL·LACIÓ:


Instal·lar els paquets

# sudo apt-get install subversion libapache2-svn


Configurar un repositori: crear-lo

# mkdir /home/usuari/repositori

# svnadmin create /home/usuari/repositori/projecteX


Configurar un repositori: servir-lo via apache

# sudo chown -R www-data:www-data /home/usuari/repositori/

# sudo nano /etc/apache2/sites-available/default

I afegir-hi :

DAV svn
SVNParentPath /home/usuari/repositori
SVNListParentPath On
AuthType Basic
AuthName "Repositori de Control de Versions"
AuthUserFile /etc/subversion/passwd
Require valid-user

# sudo htpasswd -c /etc/subversion/passwd usuari_http

# sudo apache2ctl restart



Configurar una acció automàtica al servidor després de cada “commit”

# vi /home/usuari/repositori/projecteX/hooks/post-commit

I afegir-hi les accions que volguem, per exemple, actualitzar una carpeta amb els contiguts:

/usr/bin/svn update /var/www/test >> /var/log/svn/deploy.log 2>&1

En aquest exemple, caldrà que “/var/log/svn” existeixi i tingui permisos per l'usuari “www- data”



ÚS:


Importar els continguts el primer cop al repositori

# svn import /home/usuari/prjX_backup file:///home/usuari/repositori/projecteX


Descarregar els continguts del repositori a una carpeta "publica_projecte", el primer cop

# svn co file:///home/usuari/repositori/projecteX /var/www/publica_projecte


Actualitzar la carpeta amb els canvis que hi hagi al repositori

# svn update /var/www/publica_projecte/


Afegir nous continguts a la carpeta i “pujar-los” al repositori

# mkdir /var/www/publica_projecte/nova_carpeta

hi copiem o hi creem els continguts que calgui amb “cp” o com ens sembli...

cd /var/www/publica_projecte

# svn add nova_carpeta

# svn commit


Enviar els canvis fets al repositori

En general qualsevol canvi o modificaió als continguts que es vulguin “pujar” al servidor.

# cd /var/www/publica_projecte

# svn commit



Fonts:
https://help.ubuntu.com/10.04/serverguide/C/subversion.html http://elliotth.blogspot.com/2005/02/better-subversion-post-commit-hook.html