venerdì 25 novembre 2011

Un server SVN facile per Linux - CollabNet Subversion Edge

Prologo

Per il controllo versione dei miei progetti uso SVN, per semplici motivi, lo conosco già abbastanza bene e basta per quello che devo fare.
Anche a casa, tempo fa avevo installato un server SVN (su Linux Opensuse) per i miei progetti personali, per backup e sincronizzazione dei progetti sui miei diversi pc.
Recentemente ho sperimentato un server SVN per windows chiamato VisualSVN e sono restato colpito dalla semplicità con cui permette di creare e gestire i repository e i permessi utente in un modo no-brain.
Diciamocelo, queste operazioni devono e possono essere gestibili in modo immediato e visuale.
Proprio oggi sono stato costretto a creare un nuovo repository casalingo per un nuovo progetto divertente e ... "freezeeee" .... mi sono ritrovato a rimembrare la sequenza di comandi utili alla creazione del repository e sopratutto alla corretta configurazione del server-subversion di apache.
Mi son detto:  "BASTA! questo è un attentato alla mia creatività"


Missione

Trovare un equivalente di VisualSVN per Linux OpenSuse che sia:
  1. veloce da installare
  2. altrettanto semplice da usare
  3. simili funzionalità
Primo tentativo Webmin+Virtualmin+plugin SVN 

Webmin funziona egregiamente ma Virtualmin non si installava su OpenSuse (almeno non in mezzora di tentativi e quindi violando il primo requisito), non ho quindi potuto valutare il livello di cura di questo modulo WebMin. 
FALLITO

Secondo tentativo  CollabNet Subversion Edge

Prima di incappare in questo prodotto le ricerche mi hanno portato ad altri analoghi non free.
CSE è free, ha il vantaggio di includere tutto, anche il server apache locale e quindi richiede pochissime dipendenze (una installazione Java con le variabili d'ambiente a posto, e una isntallazione Python). La politica suggerita è la seguente, crearsi un utente locale sulla macchian Linux, ad esempio io l'ho chiamato "svnguy", registrarsi sul sito CollabNet e scaricare l'archivio gz contenente i binari per linux, scompattare il .gz (comando unzip) dei binari nella home dell'utente creato.
Verrà creata una cartella csvn, entrate nella cartella ./csvn/bin
Basta usare da utente "svnguy" il comando csvn start ed è fatta, un istanza di apache sarà eseguita con un console di amministrazione su una porta non standard. (per averlo come servizio al boot  sudo csvn install)
Altre spiegazioni sono futili perché dalla console di amministrazione tutto risulta immediato ed autoesplicativo come dovrebbe essere.
VITTORIA

Concludendo

Consiglio CollabNet Subversion Edge server a tutti coloro che debbano installare e gestire un server SVN in ambiente Linux.


Note di installazione

Ho eseguito un unica modifica rispetto al README di CollabNet, sudo csvn install invece di sudo -E csvn install a causa di un comando che altrimenti no trovava in path e consiglio di abilitare nella console di amministrazione l'opzione "Start Subversion server when the management console is started" per far partire il servizio al boot.