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

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.

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

  1. david disse:

    Estive agora a instalar essa maravilha!

    É possivel aceder do exterior colocando o meu IP publico noutro local e ele acede aos repositórios??

  2. amirton disse:

    Teoricamente, nada impede que você faça isto. Ainda não testei, mas pretendo tentar assim que puder e aviso por aqui.
    Você podia também usar um serviço de DNS dinâmico, como o dynDNS ou o no-ip, que vc não ia nem precisar ter um ip fixo nem divulgar o ip de sua máquina.

  3. Cristóvão Neto disse:

    Ola! eu estou agora a começar a trabalhar com o visualSVN. Instalei-o na minha máquina, criei um utilizador e um repositório utilizei o tortoise como cliente, fiz o checkout e tudo bem. não tive qq problema.
    A minha dúvida é a seguinte:
    vamos imaginar que estou a desenvolver um projecto e que neste momento tenho as pastas versao 0.0 e versao 0.1. neste momento estou a trabalhar na versao 0.1, mas a versao 0.0 está estavel e queria coloca-la na pasta branches (que é onde ficam colocadas as versão estáveis, não é??????). cm faço para colocar nessa pasta o conteudo da minha pasta versao 0.0?????
    não sei se a minha duvida está clara de perceber, espero que sim…

  4. amirton disse:

    Olá Cristóvão,

    Acredito que entendi sua dúvida. Não sei se existe uma maneira automática de fazer isto. A solução que eu uso é criar uma pasta temporária e depois, usando o Tortoise, dar um checkout nela para a revisão da versão estável. Daí, na pasta que tenho com os branches, crio uma nova pasta, colo o conteúdo da pasta na qual dei o checkout da versão estável, adiciono e comito.

    Se você descobrir alguma maneira automática de fazer isso, me mantenha informado, por favor 😉

  5. Cristóvão Neto disse:

    Já descobri como enviar o conteudo para a pasta branches/. É muito fácil.

  6. Cristóvão Neto disse:

    a maneira que usei foi a seguinte:
    – botão direito em cima da pasta versao 0.0 -> tortoiseSVN -> Branch/tag.
    – depois indico o seguinte endereço: https://diablo:8443/svn/netoRPS/branches/versao 0.0 (ou seja, crio uma nova pasta dentro da pasta ../branches/, neste caso /versao 0.0 e copio para essa nova pasta todo o conteudo da pasta /versao 0.0), mas não activo a opção “Switch working copy to new branch/tag”.

    Assim ele cria essa nova pasta dentro da pasta branches copia para lá o conteudo da versão 0.0, mas a minha directoria de trabalho continua a ser a que já estava definida antes de fazer esta operação.

    o procedimento que me descreves-te parece ser um pouco diferente do meu. mas parece ser um pouco mais complexo. no entanto também não parece ser muito complicado, penso que só custará a 1ª vez que o fizer…

    cumps,
    neto

  7. rodrigo x disse:

    Instalei o VisualSvn server! Ele funciona perfeitamente quando o repositorio está na mesma maquina que o server está instalado, quando tento apontar para um repositório que localiza em outra maquina (remoto), ele não consegue inicializar o server, lembrando que eu tenho permissao de controle total na pasta do repositorio.
    Gostaria de saber, se tem como utilizar um repositorio remoto (em outra maquina) ?

  8. Fala cara,
    Legal o blog e o post.

    Comecei a fazer uns testes com o visual SVN, porém na hora de criar um repositório ele não pergunta se eu quero que ele crie automaticamente as pastas. O que pode ser isso?

    Outra coisa, com o Visual SVN eu tenho como criar tags, branches, etc.. para um projeto?

    vlw!

  9. Opa…

    olha só, quanto a ele não perguntar sobre a criação, eu não tenho idéia de por que isso aconteceu… sempre que precisei, isso funcionou. Mas para criar, é só dar um checkout no repositório recem-criado, criar as pastas, adicionar na mão e comitar 🙂

    Sobre a criação de tags e branches, não é função do servidor, é do cliente svn. Se vc usa tortoise, dá uma olhada aqui: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-branchtag.html que explica bem o que vc precisa fazer para criar branches e tags 😉

    Qq duvida, falae!

    vlw

  10. Alex Orem disse:

    Amigo,

    Qual client você recomenda utilizar para acessar esse servidor.

  11. Opa Alex,

    o client de sua preferência, qualquer um vai funcionar com ele ;). No windows eu uso tortoise quando tenho permissão de administrador na máquina (precisa pra instalar 😦 ). Sem permissao de admin, ou no Linux, eu uso RapidSVN… os dois são da tigris, e podem ser encontrados em http://www.tigris.org.

    Se vc usa eclipse, o subclipse é uma ótima pedida, no site da tigris também tem dizendo como instalar direto pelo eclipse.

  12. Railton disse:

    Olá Amirton.

    Você sabe se tem alguma forma de determinar permissão por usuário? Tipo… usuário X vai ser um usuário com perfil de administrador, já o usuário Y vai ser perfil básico.
    Desde já agradeço a sua atenção.

  13. Diego Zegaib disse:

    Bom dia, estou usando o usuário com admi9nistrador da máquina e dei todas as permisões para ele. Mas não consigo criar nenhuma pasta para o repositorio que eu criei, poderia me ajudar com este problema?

    Grato.

    • Délio disse:

      Para poderes criar uma pasta é necessário que estejas na mesma máquina onde está instalado o svn.

  14. ac junior disse:

    Estou usando o VisualSVN, estou meio perdido, quando eu crio o repositorio, como faco para colocar os arquivos nas pastas trunk, e mais uma coisa, eu vi que ele criou as pastar trunk, branches e tags, mas no caminho fisico, essas pastas nao aparece. Estou um pouco perdido, tem como me ajudar?

  15. André Seoane disse:

    Amirton

    Tem essa solução free ( http://www.projectlocker.com )

    []’s

  16. Muito boa dica!!!

    Parabéns e o tutorial está 100% e muito facil de entender!!!

    Grande abraço.

  17. Diego Sayron disse:

    Apesar de certificações e gostar de ambiente homogêneo MS, também tenho um lado de paixão pelos ambientes Unix e (academicamente falando) por Java.
    Entretanto, para quem vive de praticidade e possui clientes que vivem a todo tempo solicitando mudanças, escrever linhas de código (Unix) que dobram a esquina passa a ser uma atividade comprometedora, em se tratando de tempo.

    Procurei muito por instalação de servidores SVN (Subversion, principalmente), mas configurar levaria o tempo do nosso projeto.

    Você conseguiu mostrar algo que realmente supre as necessidades de funcionalidade e praticidade… e obrigado por compartilhar.

    Diego Sayron

  18. José Henrique Silva disse:

    Na verdade este VisualSVN Server é limitado certo ?
    A parte de geração de logs e outras coisas são disponíveis apenas na versão Enterprise do Software conforme o seguinte link:
    http://www.visualsvn.com/server/licensing/

    Vocês conhecem algo realmente semelhante a este software porém com a licensa totalmente free/opensource ? Pode ser tanto em Windows quanto em Linux,porém prefiro algo visual para gereciamento.

    Quanto ao tutorial está realmente excelente!
    Parabéns

    Abraços

  19. Nayana adassuriya disse:

    hi all,

    I’m a new user for the Visual SVN. I’m using Visual SVN free version and tortoise SVN as client in windows xp environment.
    I use these configuration for a PHP project. so what i do is visualSVN and xampp install in a same computer and make a make a
    client environment in side of the xampp root folder using tortoise SVN.
    now what i want is automatically update the client inside the xampp when somebody comment to the Repository

    I tried lot with hook script like fallow

    “C:/Program Files/VisualSVN Server/bin/svn.exe” update “H:/WEB SERVER/xampp/htdocs/WEBSERVER/”
    but it not succeed. and no error message.

    please help me to achieve my target.

    thanks all,
    Nayana Adassuriya

  20. marcio disse:

    ola. e como fazer para subir arquivos para o repositorio

  21. Renato disse:

    Já utilizei o SVN como usuário, mas essa é a primeira vez que estou configurando o servidor.

    Bom minha dúvida é a seguinte: quando agente cria um repositório no Visual SVN, ele te dá a opção de criar automaticamente as pastas branch, tags e trunk. Embora eu tenha visto o comentário de que serve cada pasta dessa, eu não consegui visualizar o uso dessas três pastas.

    Qual é a vantagem de usar essas três pastas e qual é a melhor forma de usá-las?

  22. ola, muito bom seu tutorial, segui ele corretamente e foi tudo perfeito … só uma parte que nao consegui executar, mas nada que atrapalhou…

    o usuario everyone n pode ser excluido nem quando se cria outros usuarios com permissoes iguais… msm assim o projeto aqui esta funcionando … =D VLW um grande abraço!

    desculpe pela falta de acentuacao, notebook =(

  23. […] Visual SVN Server – Um servidor subversion “plug and play” e free março, 2008 23 comentários 5 […]

  24. kmc10 disse:

    ae da pra instalar programas dentro do servidor svn e rodar eles de lá e se for o caso deixar eles on 24 horas?

  25. Tamires disse:

    Olá, tenho um servidor em uma rede que não é a minha… Consigo acessar ele via Terminal Service, mas não consigo acessar pastas compartilhadas via Iniciar/Executar. Ja tem o Visual SVN Server instalado, mas não consigo dar checkout. Quando coloco a URL no Tortoise SVN é exibida a mensagem:

    OPTIONS of “https://spe0034:8443/svn/Ares” Could not resolve hostname ‘spe0034’:O nome solicitado é valido, mas não foram encontrados dados do tipo solicitado.

    O que pode ser?

  26. Clovis F. S. Junior disse:

    Caracas muito bom, minha duvida era o uso pela web mas vi que ele vem com o apache e funcionou legalzinho depois que configurei o firewall.
    Mas ainda tenho uma duvida, só fiz alguns teste não coloquei para funcionar a todo vapor, não encontrei os arquivos apenas acessos pelo browser e pelo admin, preciso acrecentar estes projetos a minha rotina de BKPs, como faço para ver os arquivos pelo Windows Explorer ou pelo Konqueror ?
    Novamente muito bom este post, muito obrigado por ter compartilhado.

  27. […] Netbeans  e Eclipse, e para começar com ele, uma leitura neste artigo do blog do Amirton Chagas: Visual SVN Server – Um servidor subversion “plug and play” e free.Quem quiser procurar outros tipos de controle de versão, existem vários como o CVS, GIT entre […]

  28. kah disse:

    Tem como um repositório ser acessado pela maquina cliente pela internet??

    estava utilizando uma máquina cliente mas só consegui acessar o servidor quando a maquina servidor estava perto da minha.

    o intuito era cada integrante da equipe desenvolver na sua casa. sem ter que se reunir toda vez.

    Obrigada desde já.

  29. Guilherme H G Parizotto disse:

    boa tarde. Parabéns pelo artigo

    estou com duas dúvidas:

    1 – Para fazer backup é só copiar a pasta que foi colocada no campo Repositories (no teu caso F:\Repositories)?

    2 – Se eu fizer backup (ou copiar para outra máquina, outro servidor com VisualSVN) a pasta F:\Repositories, vou ter todo o histórico de alterações?

  30. winston1984 disse:

    Domesticate on route to a purpose overly the seine, intimate paris. http://enisory.com

  31. […] Netbeans  e Eclipse, e para começar com ele, uma leitura neste artigo do blog do Amirton Chagas: Visual SVN Server – Um servidor subversion “plug and play” e free.Quem quiser procurar outros tipos de controle de versão, existem vários como o CVS, GIT entre […]

  32. Olá, apenas para ajudar, o Assembla permite projetos fechados gratuítos ainda, na semana retrasada mesmo (dez/2012) eu fiz um destes lá em adição aos outros dois que eu já tinha.

    Espero ter ajudado,

    Abs,

  33. Rafael disse:

    olá pessoal,

    não consigo acessar url do Visualsvn sever em outro comptador.

Deixe um comentário