Objectivo
O pacote de software websvn possibilita o acesso a um repositório subversion ou svn através do protocolo http ou https, oferecendo uma interface muito visual e intuitiva.
- NOTA:
- A configuração do servidor svn via http(s) depende da instalação prévia do pacote de software Subversion, um sistema de controle de versões.
Instalação
root@server:~# aptitude install websvn
A instalação do pacote enscript é opcional, mas interessante uma vez oferece a possibilidade de colorir a sintaxe de vários tipos de ficheiros.
root@server:~# aptitude install enscript
A instalação possibilita a criação de uma configuração mínima. Por agora recusamos: esta será feita mais tarde.
Configuração
A configuração é efectuada em 2 fases: na primeira é configurado o software e na segunda é configurada a integração no servidor apache2.
A configuração do websvn é efetuada no ficheiro /etc/websvn/config.php:
# [...]
// To use the parent path method (without and with optional group), uncomment the next line
// and replace the path with your one. You can call the function several times if you have several parent paths.
/ Note that in this case the path is a filesystem path.
//
// $config->parentPath('Path/to/parent (e.g. c:\\svn)');
$config->parentPath('/var/lib/svn');
# [...]
Em seguida a integração no servidor apache2:
root@server:~# ln -sf /etc/websvn/apache.conf /etc/apache2/conf.d/websvn
Restrições de acesso
De modo a restringir o acesso apenas a utilizadores autorizados, deverá ser incluído um mecanismo de autenticação.
Nesta configuração iremos usar o mesmo mecanismo de autenticação usado no servidor SVN via http.
A definição do mecanismo de autenticação é feita no ficheiro de configuração /etc/websvn/apache.conf:
# Configuration for websvn using php4.
Alias /websvn /usr/share/websvn
<Directory /usr/share/websvn>
DirectoryIndex index.php
Options FollowSymLinks
Order allow,deny
Allow from all
<IfModule mod_php4.c>
php_flag magic_quotes_gpc Off
php_flag track_vars On
</IfModule>
AuthType Digest
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Directory>
Criação de utilizadores
Como a gestão de utilizadores com permissões de acesso ao servidor websvn é partilhada com o servidor SVN via http a configuração é feita também no ficheiro /etc/apache2/dav_svn.passwd.
Assim, ao alterarmos os utilizadores, actualizamos os 2 serviços em simultâneo.
Ao criar o primeiro utilizador deverá ser criado o ficheiro, o que é conseguido com a opção -c:
root@server:~# htdigest -c /etc/apache2/dav_svn.passwd "Subversion Repository" fribeiro
Adding password for fribeiro in realm Subversion Repository.
New password:
Re-type new password:
Para adicionar os utilizadores seguintes, não usar a opção -c, pois iria criar um novo ficheiro, eliminando os utilizadores anteriores:
root@server:~# htdigest /etc/apache2/dav_svn.passwd "Subversion Repository" user2
Adding user user2 in realm Subversion Repository
New password:
Re-type new password:
Reiniciar o servidor apache2:
root@server:~# /etc/init.d/apache2 restart
Verificação
Num browser inserir a URL do servidor websvn:
Referências:
- WebSVN (http://www.websvn.info/)


