Академический Документы
Профессиональный Документы
Культура Документы
Departamento de Computação
Tutorial de
Manutenção do Subversion
- São Carlos -
Dezembro de 2010
Sumário
INTRODUÇÃO........................................................................................................... 3
1 - CONCEITOS FUNDAMENTAIS DO SERVIDOR SVN...................................4
O servidor Apache........................................................................................................................... 4
O Subversion....................................................................................................................................4
O WebSVN...................................................................................................................................... 5
2 – CONFIGURAÇÕES DO SERVIDOR.................................................................6
Acessando o servidor (ssh).............................................................................................................. 6
MS Windows................................................................................................................................6
GNU/Linux..................................................................................................................................8
Subversion....................................................................................................................................... 8
Usuários, Senhas e Permissões........................................................................................................ 8
WebSVN.......................................................................................................................................... 9
3 – GERENCIANDO UM REPOSITÓRIO SVN...................................................11
Criação de um repositório..............................................................................................................11
Adicionando repositório ao apache................................................................................................13
Adicionando usuários.................................................................................................................... 14
Configurando permissões de acesso.............................................................................................. 14
Disponibilizando o repositório pela rede.......................................................................................15
Fazendo Backup.............................................................................................................................16
REFERÊNCIAS.........................................................................................................17
INTRODUÇÃO
Este tutorial faz parte das atividades desenvolvidas por João Celso Santos de Oliveira, aluno
do curso de Ciências da Computação do Departamento de Computação da UFSCar (Universidade
Federal de São Carlos), ingressante em 2010.
Contato,
O servidor Apache
O software Subversion pode ser configurado sobre um servidor de várias maneiras, no nosso
caso está rodando como módulo de um servidor Apache em uma máquina Linux.
Ele já está configurado e rodando então nosso interesse é apenas em suas configurações
relacionadas com o svn.
Módulos do apache são responsáveis por fornecer não só a interface para o subversion mas
também a autenticação de usuários e uma interface web para o repositório (WebSVN).
O Subversion
Como já foi dito, o subversion está configurado como módulo do servidor apache.
O WebSVN é um aplicativo escrito em PHP que usa a estrutura do apache para fornecer
uma interface web com o Subversion.
O administrador deverá ter acesso direto à máquina do servidor (linux) via ssh se utilizando
de usuário e senha com permissões necessárias para a manutenção.
MS Windows
● http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Com os dados do servidor em mãos, digite o endereço, a porta e clique no botão 'open' que o
Putty se encarrega de fazer a conexão. No nosso exemplo, o ip do servidor é 192.168.142.128 e a
porta a se usada é a número 22 (porta padrão para conexões seguras ssh).
Durante a negociação com o
servidor é feita uma verificação de
certificados digitais então é possível
que apareça um alerta do Putty
confirmando a intenção de se
conectar a um servidor
desconhecido. Confirme.
Em sistemas GNU/Linux pode-se usar o cliente ssh padrão junto ao terminal, geralmente o
openssh.
$ ssh root@192.168.142.128
$ ssh root@192.168.142.128
The authenticity of host '192.168.142.128 (192.168.142.128)' can't be
established.
RSA key fingerprint is 88:ee:6a:bd:4c:12:d7:1d:84:bd:02:b1:ab:61:c2:8e.
Are you sure you want to continue connecting (yes/no)?
Seguindo será pedida a senha para o usuário fornecido e então será dado acesso ao terminal
do sistema.
Subversion
Para adicionar um outro usuário, por exemplo um usuário 'celso', usamos o seguinte
comando:
WebSVN
<Directory /usr/share/websvn>
DirectoryIndex index.php
Order allow,deny
Allow from all
AuthName “Repositório Subversion (GBD)”
AuthType Basic
AuthUserFile /etc/apache2/svn.passwds
Require valid-user
<ifModule mod_php4.c>
php_flag magic_quotes_gpc Off
php_flag track_vars On
</ifModule
</Directory>
Onde a linha 'AuthType' diz que é requerida uma autenticação do tipo básica. No momento
da autenticação o repositório se identifica pelo texto fornecido a 'AuthName' e usa o arquivo do
caminho em 'AuthUserFile' para obter logins e senhas válidos, no caso será usado o nosso arquivo
global '/etc/apache2/svn.passwds'.
Embora seja possível configurar repositórios individualmente, no nosso caso, o websvn foi
configurado de forma que todos os repositórios do diretório '/srv/svn/' serão disponibilizados na
interface web (reservados os direitos de leitura e escrita a serem configurados posteriormente).
$config->parentPath('/srv/svn');
Uma vez configurado desta forma, repositórios recém-criados no diretório serão incluídos
na interface automaticamente a quem tiver direito de leitura.
Outra configuração importante é apontar qual o arquivo que define permissões de leitura e
escrita. Isto se define na seguinte linha:
$config-> useAuthenticationFile('/etc/apache2/svn.access');
3 – GERENCIANDO UM REPOSITÓRIO
SVN
Para tratar dos passos do gerenciamento de um repositório SVN vamos usar como exemplo
este projeto de Tutorial seguindo os passos já sugeridos anteriormente:
● Criação de um repositório;
● Adicionar usuários;
● Fazer backup;
Criação de um repositório
Poderão haver vários repositórios que hospedarão trabalhos diferentes e terão configurações
diferentes. A primeira escolha é um local padrão para alocar repositórios. O local escolhido é o
/srv/svn/ que já está configurado para o WebSVN.
Neste local criamos o diretório que irá alocar nosso repositório para o projeto de Tutorial.
# cd /srv/svn
# mkdir tutorialsvn
O diretório está vazio. O seguinte comando irá criar nele um repositório vazio:
# svnadmin create /srv/svn/tutorialsvn
Este diretório foi pensado com um layout que melhor servirá ao repositório do projeto em
andamento.
Desta forma o repositório já está pronto para uso local, mas como nossa intenção é
disponibilizá-lo online deve-se observar que atualmente todo conteúdo do repositório tem como
dono o usuário do sistema operacional root, que nenhum outro usuário possui permissões de escrita
e que o servidor apache roda como o usuário www-data. Basta redefinir dono e grupo no conteúdo
do repositório:
Agora podemos fazer a configuração do apache para que disponibilize nosso repositório on-
line.
# nano /etc/apache2/mods-enabled/dav_svn.conf
◦ SVNPath /srv/svn/tutorialsvn.
◦ AuthType Basic.
◦ AuthUserFile /etc/apache2/svn.passwds
◦ AuthzSVNAccessFile /etc/apache2/svn.access
◦ Require valid-user
Teremos a seguinte estrutura:
<Location tutorialsvn>
DAV svn
SVNPath /srv/svn/tutorialsvn
AuthType Basic
AuthName “Tutorial SVN”
AuthUserFile /etc/apache2/svn.passwds
AuthzSVNAccessFile /etc/apache2/svn.access
Require valid-user
</Location>
Adicionando usuários
Nele indicamos o nome do repositório e o diretório seguido dos usuários e suas permissões
('r' e/ou 'w', ou vazio).
[tutorialsvn:/]
*=
joao = rw
celso = r
Por exemplo, cada usuário tem um projeto individual e secreto. Adicionamos então as
seguintes linhas.
[tutorialsvn:/projetodoJoao]
*=
joao = rw
[tutorialsvn:/projetodoCelso]
*=
celso = rw
Também existe a opção de formar grupos de usuários. Para isso adiciona-se no início do
arquivo a tag [groups] seguida de nomes de grupos e usuários como abaixo.
[groups]
editores = joao, celso
administradores = joao
tutorialsvn = joao
[tutorialsvn:/]
*=
@editores = rw
@administradores = r
celso = r
Lembramos que as permissões serão atribuídas na ordem em que aparecem no arquivo, isto
é, as linhas mais abaixo sobrepõem as mais acima.
Com as configurações prontas, podemos reiniciar o servidor apache para que o diretório
fique disponível on-line.
# /etc/init.d/apache2 restart
É criada uma cópia idêntica que pode substituir a original apenas movendo o diretório de
backup no lugar da original.
site: http://svnbook.org/
site: http://www.apache.org/
site: http://subversion.apache.org/.
site: http://websvn.tigris.org/