Escolher o controle de versão para o seu projeto é uma decisão muito importante. Neste post vamos subir o famigerado Subversion, que chamarei apenas de svn daqui em diante, no servidor HTTP apache, e assim servir o projeto através da in{ter,tra}net.
Aviso: O SVN é velho, centralizado, tem sérios problemas relativos a mover e apagar pastas, em contrapartida tem integração sólida com IDE's e ambientes gráficos. É também um dos mais rápidos de configurar, se não o mais rápido de todos.
Abaixo nossa agenda, Curtinha, diga-se de passagem:
- Instalar o Apache HTTP Server no openSUSE 11.4
- Instalar o svn e o mod_svn no openSUSE 11.4
- Configurar o mod_svn
- Criar o repositório SVN
- Configurar usuários e acessos ao repositório
Já no openSUSE, abra um terminal qualquer e vire root. Instale o Apache da seguinte maneira:
zypper in apache2
As configurações irão para /etc/apache2 e os arquivos servidos serão encontrados primariamente em /srv/www
O svn e o mod_svn vem de maneira análoga:
zypper in subversion-server
Devemos agora ativar o suporte a webdav, ao módulo do svn e ao módulo de autorização na configuração do apache. OBS: este passo parece ser bem específico de openSUSE...
a2enmod dav
a2enmod dav_svn
a2enmod authz_svn
Seguindo com o tutorial, vamos editar a configuração do repositório. que está em /etc/apache2/conf.d/subversion.conf.
O arquivo de configuração presente já possui excelentes exemplos, apresento apenas uma alternativa aqui: a de repositório único.
Use o seu editor favorito: vi, kate, gedit, o que o openSUSE lhe der mais facilmente, e troque a configuração padrão por essa daqui:
# /etc/apache2/conf.d/subversion.confDAV svn SVNPath /srv/www/svn/repo AuthType Basic AuthName "simplest repo" AuthUserFile /srv/www/svn/svn-users AuthzSVNAccessFile /srv/www/svn/svn-access-control Require valid-user
Explicando um pouco: ao navegar pelo host rodando o apache, teremos um contexto chamado /repo que corresponderá a um repositório chamado repo criado em /srv/www/svn. O arquivo de senhas e o de autorização também vão nesta pasta, facilitando assim o processo de backup. O resto da configuração serve para ativar o webDAV, autenticação, um título para a autenticação e sempre requisitar um usuário válido.
Não inicie ainda o apache. Temos que seguir para /srv/www para criarmos a pasta svn e dentro dela o repositório, o arquivo de senhas e o de autorização:
cd /srv/www
mkdir svn
cd svn
touch svn-users
touch svn-access-control
svnadmin create repo
Precisaremos de um usuário para operar neste repositório. Criaremos o usuário e a senha com o htpasswd2:
cd /srv/www/svn
htpasswd2 -b svn-users joao senhajoao
Agora devemos adicionar este conteúdo no arquivo svn-access-control:
[repo:/] joao = rw
Estamos pertinho do final. Falta apenas ajustar as permissões. vamos 'dar' o repositório para o usuário que roda o processo do apache:
chown -R wwwrun:www /srv/www/svn
Pronto, pode rodar o apache!
service apache2 start
Abra o firefox e siga para http://localhost/repo (supondo que você esteja na mesma máquina do repositório) e a caixa de autenticação surgirá. entre com o usuário e senha que criamos e fim.
A integração do svn com as mais diversas ferramentas é grande, dada a sua idade. Ferramentas como tortoise, kdesvn e o plugin subversive para eclipse falam por si mesmos.
É também um repositório de fácil backup e de fácil migração: quando a tecnologia evoluir e você for migrar para um controle distribuído de versão, há boas ferramentas proporcionando a migração para no novo versionador.
E você vai querer migrar, cedo ou tarde: as principais reclamações que recaem sobre este velho guerreiro são seus problemas com repositórios muito grandes em histórico e tamanho de arquivos e especialmente o problema que ele tem com a deleção de pastas com subpastas. Aqui a dica que dou é usar algum explorador de repositório e deletar as cosias através dele, e só então atualizar a cópia local.
Sem mais, até a próxima!
Nenhum comentário :
Postar um comentário