Installare Subversion su Debian

Introduzione

Subversion (noto anche come svn, che è il nome del suo client a riga di comando) è un sistema di controllo versione progettato da CollabNet Inc. con lo scopo di essere il naturale successore di CVS, oramai considerato superato. E' rilasciato sotto la licenza libera Apache.

Installazione

Operando sul server come utente root, installiamo Subversion con un solo comando:

# apt-get install subversion

Configurazione

Creiamo ora una directory per contenere i repository dei nostri progetti:

# mkdir –p /var/lib/svn

Quindi avviamo un primo progetto di prova all'interno della directory appena creata:

# svnadmin create /var/lib/svn/myproject

Abilitare HTTP

Subversion è ora installato e funzionante, ma può essere usato solo in locale sul server che lo ospita, che non è una cosa molto comoda. Abbiamo quindi bisogno di installare un web server e di configurarlo per ospitare Subversion.
Per l'installazione di Apache rimandiamo alla guida dedicata: Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5.
Al termine dell'installazione base di Apache possiamo installare il modulo SVN:

# apt-get install libapache2-svn

Ora dobbiamo configurare il modulo SVN di Apache modificando il suo file di configurazione principale:

# nano /etc/apache2/mods-available/dav_svn.conf

Il file di default è completamente commentato e non contiene nemmeno un'istruzione eseguibile, ma solo una configurazione di esempio disabilitata. Lasciamo pure tutto così e aggiungiamo alla fine del file la nostra configurazione:

<Location /svn>
  DAV svn
  SVNParentPath /var/lib/svn
  AuthType Basic
  AuthName "Ferdy Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>
 </Location>

Quindi salviamo il file e riavviamo Apache:

# /etc/init.d/apache2 restart

Impostare i permessi sulla directory radice

Poichè interagiremo con Subversion attraverso Apache, è importante che il nostro webserver abbia i permessi di scrittura sulle directory del nostro repository. Impostiamo quindi i giusti permessi:

# chown –R www-data:www-data /var/lib/svn