Este artigo aborda a instalação do subversion com o módulo apache para que possa ser acessado facilmente de outros sistemas em uma rede pública. Se você quer um servidor svn mais seguro, você pode usar svnserve + ssh, o que não é coberto neste artigo.
Para instalar o subversion, abra um terminal e execute o seguinte comando:
sudo apt-get install subversion libapache2-svn
Nós vamos criar o repositório do subversion em / svn, embora você deva escolher um local que tenha uma boa quantidade de espaço.
sudo svnadmin create /svn
Em seguida, vamos precisar editar o arquivo de configuração para o módulo webav do subversion. Você pode usar um editor diferente, se quiser.
sudo gedit /etc/apache2/mods-enabled/dav_svn.conf
O elemento Location no arquivo de configuração determina o diretório raiz do qual o subversion será acessado, por exemplo: https://www.server.com/svn
A linha DAV precisa ser descomentada para habilitar o módulo dav
# Uncomment this to enable the repository, DAV svn
A linha SVNPath deve ser configurada no mesmo local em que você criou o repositório com o comando svnadmin.
# Set this to the path to your repository SVNPath /svn
A próxima seção permitirá que você ative a autenticação. Esta é apenas uma autenticação básica, por isso não a considere extremamente segura. O arquivo de senhas estará localizado onde a configuração AuthUserFile o define para… provavelmente é melhor deixá-lo no padrão.
# Uncomment the following 3 lines to enable Basic Authentication AuthType Basic AuthName “Subversion Repository” AuthUserFile /etc/apache2/dav_svn.passwd
Para criar um usuário no repositório, use o seguinte comando:
sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd
Observe que você só deve usar a opção -c na PRIMEIRA vez que você criar um usuário. Depois disso, você só desejará usar a opção -m, que especifica a criptografia MD5 da senha, mas não recria o arquivo.
Exemplo:
sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd geek New password: Re-type new password: Adding password for user geek
Reinicie o apache executando o seguinte comando:
sudo /etc/init.d/apache2 restart
Agora, se você acessar seu navegador para https://www.server.com/svn, deverá ver que o repositório está habilitado para acesso anônimo de leitura, mas o acesso para confirmação exigirá um nome de usuário.
Require valid-user
Agora, se você atualizar seu navegador, você será solicitado a fornecer suas credenciais: