Visual SVN Server – Um servidor subversion “plug and play” e free

4 F Y

Todos sabem, ou deveriam saber, a importância de manter um projeto sob alguma forma de controle de versão, principalmente quando este projeto vai ser realizado por vários integrantes, que podem estar programando sem estar em contato uns com os outros, em arquivos diferentes ou às vezes um mudando os arquivos dos outros. As vantagens de integrar os códigos dos diferentes membros do projeto durante todo o andamento das atividades, de possuir um log com todas as alterações que foram feitas, possuir os códigos de cada versão, podendo reverter um dado arquivo para uma versão mais antiga que funcionava e até mesmo a possibilidade de verificar a atividade de cada participante do projeto são apenas alguns dos motivos para alguém usar uma ferramenta de controle de versão.

Desde projetos pequenos, como alguns da universidade, que vão durar um mês e ter no máximo 4 ou 5 participantes, até grandes projetos como os hospedados no sourceforge (eMule por exemplo), é interessante possuir uma ferramenta de versionamento. Existem vários sites que oferecem o serviço gratuitamente, alguns exigindo que o projeto seja open-source, como o Google Code (http://code.google.com/hosting/), no qual você deve escolher entre algumas licenças como GPLv2 ou 3, Apache ou Mozilla e possui um espaço limitado (se não me engano são 100MB) para manter seu código. Outros sites como o Assembla (http://www.assembla.com, oferece 500MB) permitem projetos fechados (EDIT: Desde outubro de 2008 o Assembla deixou de oferecer o serviço gratuito para projetos de código fechado. Projetos opensource continuam podendo ser hospedados por lá sem problemas). Já tive a oportunidade de trabalhar com ambas as ferramentas citadas acima, e posso dizer que elas foram muito úteis para projetos da universidade e outros projetos pessoais. Quando os projetos passam a ser fechados, envolver dinheiro realmente, em que o código deve ser protegido e/ou não se pode depender totalmente da conexão com a internet, usar uma ferramenta na web pode não ser a melhor opção (mesmo que alguns dos serviços, como o Assembla, ofereçam versões pagas que resolvem alguns dos problemas de ter seu repositório todo na web). Daí surge a necessidade de instalar seu próprio servidor SVN ou CVS, e com isso, pode surgir uma grande dor de cabeça.

Resumindo bem, a maioria dos servidores “oficiais” de controle de versão são realmente complicados pra instalar. Já vi gente que já tinha instalado umas dez vezes um servidor de CVS se passar pra conseguir instalar a décima primeira vez… O processo as vezes parece até místico :p. É instalação deszipando arquivo, escrevendo comando em prompt, alterando variável de ambiente do SO… enfim, seu projeto pode correr o sério risco de parar antes de ter uma linha de código escrita. Os leitores mais masoquistas podem dar uma olhada neste site, que possui um passo-a-passo de como instalar o servidor subversion normal e criar um repositório. Pra simplificar tudo isto, vou falar sobre o VisualSVN Server.

Como citei no título deste post, o VisualSVN Server é grátis, pra qualquer tipo de projeto, ao contrário do cliente VisualSVN para o Visual Studio, do qual falei neste outro post. Também falei que o VisualSVN Server é “plug an play”… estou tomando esta expressão emprestada do pessoal de hardware, pois é a melhor expressão que eu encontro para falar sobre este programa. A única ação que você precisa tomar para criar o servidor é instalar o programa. Pronto, não precisa mais enfiar valores bizarros nas variáveis de sistema nem se embrenhar em prompts cinza-sobre-preto (particularmente, prefiro verde-sobre-preto). Toda a manutenção é feita através do console de gerenciamento do sistema, aquele mesmo que é usado para gerenciar o IIS ou os discos no seu Windows, através de uma interface extremamente limpa e fácil de usar. A criação de um repositório, de usuários e a atribuição de quais usuários vão ter acesso (e em que nível) a cada repositório é extremamente simples. Para exemplificar bem como este processo é simples, vou mostrar um passo-a-passo, ilustrando com screenshots das telas, sobre como criar seu repositório usando o VisualSVN Server.

1. Baixe o VisualSVN Server. Vá em http://www.visualsvn.com/server/ e baixe a versão mais nova do programa. Este é o único arquivo que você precisará baixar para fazer seu servidor funcionar.

2. Rode o Instaladador. A Tela de Instalação mais importante é a seguinte:

VisualSVN Server - Instalação

Nela você escolhe onde o programa será instalado, em que pasta ele irá manter os repositórios (note que para escolher, você deve clicar no respectivo botão Browse), o nome do servidor, uma porta para o servidor (a porta padrão é 8443) e se você quer ou não usar https. Eu gosto de usar https e mudar a porta pra qualquer outra, mas isso fica a seu critério.

3. Depois de concluir a instalação, seu servidor de repositórios já está rodando! Se quiser conferir, vá em http(ou https)://NomeDoSeuServidor:SuaPorta . Você ainda não criou nenhum repositório nem nenhum usuário, então não vai conseguir ver nada. Vamos criar agora.

4. Abra o console de configuração do VisualSVN Server. Você deve ver uma tela como a seguinte:

VisualSVN Server - Manager1

Vamos primeiro criar um usuário. É só ir com o botão direito em Users, e clicar em “Create User”. Informe um login, digite e confirme a senha (a senha é case-sensitive) e crie o usuário. Se você tentar agora entrar na página do seu servidor e passar este usuário/senha, você vai ter uma tela como a seguinte:

VisualSVN Server - Repositories1

Para alterar a senha ou remover um usuário, basta clicar sobre o login desejado na tela de usuários e escolher a ação.

5. Agora vamos criar um repositório. Também é uma operação extremamente simples, basta clicar com o botão direito em “Repositories”, “Create Repository…” e escolher um nome para ele. Na tela onde você bota o nome para seu repositório, você tem a opção de escolher se devem ser criadas as pastas padrão de um projeto no svn: “trunk”, usada para manter os arquivos em desenvolvimento, “branches” para as versões suficientemente estáveis, onde não haverá mais desenvolvimento, apenas correções, e posteriormente o código sofrerá testes exaustivos, e “tags”, que são realmente as versões de release do projeto. Recomendo fortemente deixar o servidor criar estas pastas, dado que são um padrão quando se usa o SVN.

6. Finalmente, você deve configurar quem terá acesso ao seu repositório. Clique com o botão direito sobre o nome de seu repositório e escolha “security”. Por default todos tem acesso de leitura e escrita, para mudar isto basta você remover o grupo “Everyone” da lista e adicionar os usuários que você deseja que tenham acesso e qual nível de acesso você deseja dar para cada usuário ou grupo.

7. Tudo pronto, agora basta você dar um checkout usando o cliente svn de sua preferência para o endereco [[http ou https)]]://[[NomeDoServidor]]:[[PortaDoServidor]]/svn/[[NomeDoRepositorio]]/

Pronto, seu repositório está criado e você pode fazer o que quiser com ele :)… Bem simples, e em 5 minutos você tem um servidor de controle de versão para seu projeto rodando! Qualquer dúvida, pode postar um comentário que eu tento responder o mais rápido que der.