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.


VisualSVN – O “subclipse” do Visual Studio

19 F Y

Depois de um looongo tempo sem postar nada aqui, acordei hoje com vontade de escrever. Pra ser sincero, ia falar sobre o MyGeneration, programinha legal, que parece ser muito útil para gerar código e que talvez eu use para um projeto com NHibernate, nem que seja só para os mapeamentos… ninguém merece escrever aquilo na mão… No decorrer do dia, devido a necessidade de usarmos um servidor de controle de versão que inicialmente seria baseado em CVS mas devido a problemas de configuração mudamos para subversion, demos de cara com o VisualSVN Server, um servidor “plug-and-play” para subversion (extremamente fácil de usar… em 2 minutos você tem o servidor rodando e o povo já podendo usar o repositório), e seu projeto irmão VisualSVN “cliente” e senti que havia mais necesidade em falar sobre ele agora, o MyGeneration fica para outro momento, depois que eu tiver usado um pouco mais 🙂

Vamos ao VisualSVN. Ele é um plugin de subversion para o Visual Studio, que automatiza certas tarefas, baseando as ações no seu projeto. Se você adicionar um item à sua solução, seja ele novo ou já existente, ele será adicionado ao controle de versão. Você vai poder realizar commits e updates diretamente no Visual Studio, sem precisar ir na pasta onde está seu projeto e fazer estas atividades usando o TortoiseSVN (ou para os mais masoquistas, fazer via linha de comando 🙂 ). Outra característica interessante é o uso “traffic lights“, semáforos, ou bolinhas coloridas do lado do nome do arquivo na Solution Explorer, como preferir… elas indicam se o arquivo está sem mudanças (em verde), com mudanças (amarelo) ou com erros/conflitos (vermelho).

Por baixo dos panos, o VisualSVN usa o TortoiseSVN, que deve estar instalado na máquina, para realizar suas tarefas. Ele serve como uma ponte entre o velho e conhecido programa de quem usa SVN no Windows e o Visual Studio, e de acordo com os desenvolvedores (http://www.visualsvn.com) através dele você pode executar qualquer comando de subversion. Quem já está acostumado a usar o subclipse, o “primo” deste plugin para Eclipse, não vai sentir muita diferença além do visual. Quem nunca usou subclipse e afins pode sentir um pouco de dificuldade no começo com o Repository Explorer e outros itens que não existem nos clientes não integrados à IDEs, mas a partir do primeiro checkout dado dentro da IDE com sucesso você vai esquecer que já teve que ficar “Alt-Tab” usa o Tortoise “Alt-Tab” volta pro VS “Alt-Tab” vai resolver conflito “Alt-Tab” volta pro VS pra ver se tá tudo certo “Alt-Tab” volta pro Windows Explorer pra comitar de novo…

Pois é, tudo tem um preço… e no caso de VisualSVN, é um preço de verdade, 49 dólares per working seat, com um esquema de descontos para compra em volume. Participantes ativos em projetos open-source não comerciais que já possuem um repositório subversion público podem pedir uma licença gratuita (http://www.visualsvn.com/request-license.html), mas o pessoal parece verificar realmente qual seu nível de atividade no projeto. Para todos os outros, resta usar o trial de 30 dias, disponível para download na página do produto. Existem alternativas gratuitas ao VisualSVN, como o AnkhSVN, que eu pretendo testar e depois comentar como foi minha experiência… Quem quiser dar uma conferida no Ankh, dá uma olhada nos meus links do del.icio.us que o link está lá. Só pra avisar, o VisualSVN Server é totalmente grátis, e pode ser usado em qualquer tipo de projeto, por quanto tempo quiser, e vai ser em breve alvo de algum post meu também.

Não vou escrever nenhum tutorial sobre o VisualSVN, pois o site do desenvolvedor trás muita informação, e quase qualquer dúvida sobre o uso deste plugin se resume a uma dúvida de como usar o TortoiseSVN… mas qualquer coisa, deixa um comentário aí em baixo que quando eu puder eu tento responder.