Instal·lar SVN server sobre GNU/Linux

Subversion és un sistema de control de versions. Què és això? Doncs per explicar-ho, posaré un petit exemple per on tothom ha passat, i on  podria anar bé una plataforma com aquesta. Recordem quan fèiem treballs del col·legi en grup. Ens trobàvem en que era molt difícil coordinar-se. Si el grup era de 3 persones, es repartia la feina de que cadascú fes una secció independent del treball, seguint les mateixes pautes comunes, però sense tocar directament el treball dels altres. Això, feia que a casa seva (on cada alumne treballava), hi hagués una copia totalment diferent del treball, fins que un dia, tot el grup es reunia, per mesclar-ho tot i donar-li un sentit ple.

Doncs si aquest document word estigués en un repositori de Subversion, aquest document estaria, com es diu, sincronitzat. Això implicaria que tothom tindria la seva copia, com en la situació anterior, però podria veure en línia els canvis que els altres usuaris haguessin fet al document, tant a les seves seccions com a les pròpies. Podríem modificar el text dels nostres companys i ells, al sincronitzar-se, veurien on hem fet aquests canvis. Totes les versions, estarien diferenciades, de manera que en qualsevol moment podríem tornar a la versió que es va guardar fa una setmana.

Segur que totes aquestes idees sonen bé, són positives… doncs imagineu com ha de ser de potent aquest tipus d’eina en un projecte sencer, amb un munt de desenvolupadors treballant alhora, un munt d’arxius diferents, forks del projecte… Res millor per a animar-vos a que ho proveu, com un petit manual per a que ho munteu en les vostres màquines.

Per cert, un link, que sempre va bé: http://es.wikipedia.org/wiki/Subversion

Howto SVN Server:

Primer de tot, cal instal·lar els següents paquets, via drakconf mateix.

  • subversion-1.4.3-2mdv2007.1.i586
  • subversion-server-1.4.3-2mdv2007.1.i586
  • subversion-tools-1.4.3-2mdv2007.1.i586

En principi, després d’haver instal·lat aquests paquets, disposes de la aplicació “svnadmin”. Ara, crea un directori on vulguis situar el repositori, i crea els arxius necessaris dintre d’aquest directori amb l’ajuda de “svnadmin”. Podria ser algo similar a:

# cd /opt/
# mkdir subversion
# svnadmin create subversion

Si entrem dintre del directori que acabem de crear, veurem que “svnadmin” ens ha creat una estructura de directoris, i un arxiu README.txt… així que no estaria de més fer un RTFM! (ho acabo de llegir i són 4 línies que fan sentir que tot està controlat).

En aquest punt, ja tenim el sistema d’arxius llest, i passem a concentrar-nos en la configuració del servidor de SVN. Primer, modificarem l’arxiu de configuració de subversion, i després modificarem els usuaris que tenen accés al nostre gestor de versions.

# vim /opt/subversion/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd

# vim /opt/subversion/conf/passwd
[users]
pipo=elpassworddelpipoeslarehostia

Modificats aquests dos arxius, ja tindrem tot el repositori muntat i configurat. Ara, només ens cal arrancar-ho amb la comanda:

# svnserve -d -r /opt/subversion

Al executar aquesta comanda, que no ens retorna cap echo, ja tindrem el servidor d’SVN corrents pel port 3690 de la nostra màquina. Podem observar-ho amb lsof -i:

# lsof -i
svnserve  30661    root    3u  IPv6  83679       TCP *:svn (LISTEN)

Per cert, ara que miro la línia, seria interessant que svnserve no s’executés com a root, sinó que el repositori estigués sota els permisos d’un usuari corrent, i el procés svnserve es cridés des d’aquest usuari.

Howto Eclipse SVN (Subclipse)

Una de les eines que utilitzo contra SVN és l’Eclipse (de fet, és la única). I aquí una petita mostra per a configurar l’Eclipse com a client del nostre gestor de versions. L’únic requisit és tenir instal·lat el plugin “Subclipse” al nostre Eclipse. Personalment, utilitzo la distribució d’Eclipse de Yoxos (http://www.yoxos.com/ondemand/) que ja em porta aquest plugin instal·lat, de manera que mai m’he hagut de preocupar per això. En tot cas, no ha de ser molt problemàtic trobar algun howto de com instal·lar això…

En el cas de que ja ho tinguem instal·lat tot, hem d’obrir la perspectiva “SVN Repository Exploring”. Allà, fer:
Click dreta sobre la zona de “SVN Repository” – New – Repository Location

L’únic camp que se’ns demana és “URL”, on posarem la direcció del nostre servidor. Si mirem el que hem configurat, recordarem que el nostre repositori era a “/opt/subversion”, de manera que “subversion” es el nom del nostre repositori. Aquesta URL es forma així:
svn:// + domini + repositori
svn://piposerver.com/subversion

Al fer click a “Finish”, ens apareixeran tots els projectes que tinguem en el repositori (no n’hi haurà cap si acabem d’instal·lar la plataforma!)

En aquest moment, el nostre Eclipse ja serà capaç de compartir projectes. No vull endinsar-me molt en això, ja que hi ha molt de tema per escriure… però per a introduir-nos, només comentar que per a compartir un projecte, només cal anar a la perspectiva de Java, i des d’allà:
Click dreta sobre el projecte – Team – Share project

Espero que aquest manual, escrit amb les millors intencions, us hagi servit d’alguna ajuda!! I si és així, no estaria de més una mica de feedback 😉