SubVersion over http con Apache2

E' possibile accedere ad un repository subversion tramite l'utlizzo di diversi protocolli:

  • SVN diretto tramite svnserve
  • HTTP (o HTTPS) tramite webdav
  • SVN su tunnel SSH 
  • FILE per l'accesso a repository locali

tendenzialmente preferisco l'utilizzo diretto quando si lavora in LAN oppure VPN; invece quando si deve configurare un repository accessibile via internet meglio utlizzare un tunnel SSH o HTTPS.

In questo how-to vedremo come configurare Apache2 come punto di accesso ad un repository subversion su un server Ubuntu.

HOW TO

Installiamo apache, svn e qualche libreria necessaria:

apt-get install subversion apache2 libapache2-svn

creiamo il repository:

svnadmin create /var/svn-repository

facciamo in modo che apache abbia i permessi per accedere al repository tramite i comandi:

chgrp -R www-data /var/svn-repository
chmod -R g+wr /var/svn-repository

Adesso si deve configurare apache; supponiamo di voler rendere raggiungibile il repository all'indirizzo http://mioserver/svn . Per far questo modifichiamo il file /etc/apache2/mods-available/dav_svn.conf in questo modo (oppure se avete configurato dei VirtualHost andate a modificare il file di configurazione del VirtualHost interessato):

<Location /svn>
DAV svn
SVNPath /var/svn-repository
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /var/svn-repository/conf/htpasswd
Require valid-user
</Location>

creiamo il file che conterrà i nomi degli utenti e delle password:

touch /var/svn-repository/conf/htpasswd

e riavviamo apache con il comando:

/etc/init.d/apache2 restart

Bene! abbiamo quasi finito. Con questa configurazione avremo un repository subversion accessibile tramite http ai soli utenti che andremo a configurare.

Per ogni utente da aggiungere eseguite questo comando per configurarne la password:

htpasswd -m /var/svn-repository/conf/htpasswd unNomeUtente

 

Complimenti! Adesso potete usare il vostro repository ;-)

 

Ulteriori informazioni

Variando la configurazione è ovviamente possibile aprire il repository agli utenti guest, gestire le ACL per un controllo più granulare sugli accessi, etc.

Trovate qualche altra informazione sulla configurazione di un repository a questo URL:  https://help.ubuntu.co m/community/Subversion

Seguendo un procedimento simile potrete ovviamente installare il repository anche su server con altre distribuzioni Linux o con FreeBSD, etc.