Olá a todos.

Este é o meu primeiro post (de muitos espero!) e já vou começar com uma série de posts sobre um assunto muito discutido e usado em diversas empresas. Já tivemos um post muito bom sobre o assunto, para quem quiser dar uma conferida, é só acessar.

O post do nosso amigo Renato Lima fala muito bem sobre como instalar, baixar um repositório, entre outros, e portanto, não entrarei nesses aspectos aqui. Aconselho bastante a lerem antes de prosseguirem, já que vou abordar aspectos um pouco mais avançados que muitas pessoas talvez nem conheçam, mas que podem ajudar muito a otimizar seu tempo de desenvolvimento e o compartilhamento de código entre os outros desenvolvedores.

Primeiramente, para começar o seu projeto, precisamos criar o repositório no servidor. Existem 2 comandos básicos que irei utilizar durante todo o tutorial: svn e svnadmin. Partindo do pressuposto que vocês já tem instalado o Subversion no servidor, devemos começar com o comando svnadmin.

Com ele, temos todas as opções para criar e gerenciar os repositórios de dados. Importante ressaltar sobre um dos mais importantes paradigmas de controladores de versões, que é dividir o seu projeto em 3: trunk, tag e branch. Essa abstração é absolutamente lógica, ou seja, para o próprio SVN, não existe essa divisão. Para ele, existe um repositório com 3 pastas e o seu gerenciamento deve ser feito através do modelo que o gerente ou arquiteto optar. As diferenças entre eles são essas:

  • Trunk: é a cópia do que está em produção.
  • Branch: é aonde estão sendo desenvolvidos os módulos que irão para o trunk (produção). É importante lembrar que o branch deve ser fácil de manipulá-lo, onde cada desenvolvedor terá o seu próprio ou alguns irão compartilha-los (depende de como está feito a alocação das tarefas).
  • Tag: quando já está fechado um módulo inteiro de algum branch, é criado um tag para homologação do que irá ser colocado no trunk (produção).

Então, vamos criar um primeiro projeto chamado 100loop. Criamos primeiramente a pasta onde o repositório ficará armazenado e então, o criamos, com o seguinte comando: svnadmin create . (Necessita-se do ponto final, para criar no local onde foi criada a pasta)

obs: O exemplo foi executado no terminal do meu mac, porém, em qualquer terminal de qualquer servidor (sem ser Windows) são exatamente esses comandos.

Agora vamos criar as pastas que serão as bases para o projeto. Lembrando que a criação destas pastas são totalmente abstratas, ou seja, o analista que irá recomendar o uso. Para o SVN estas pastas são parte de um mesmo repositório. Então, sem mais delongas, vamos executar a sequência de passos a seguir:

Perdido? hehe. Calma! Vou explicar o que cada comando fez. Primeiramente, foi criada uma pasta repos só para podermos manipular nosso repositório. Essa cópia, chama-se working copy. Depois que criamos a pasta, “baixamos” o repositório dando o comando checkout. Observa-se que passamos como parâmetro o endereço físico do repositório, que no caso, é /Users/andregonzaga/Teste/100loop.

Com o nosso working copy funcionando, criamos as 3 pastas e as adicionamos com o comando add (todos estes comandos existem no SVN Tortoise para Windows, logo, não há segredo nenhum). Após a inclusão dos diretórios, basta a gente subir as alterações com o comando commit. Pronto! A nossa abstração do projeto já está em nosso repositório e agora podemos separar os branches, utilizar o trunk como a cópia da produção e a tag como homologação.

Bom, fico por aqui, lembrando que este é o primeiro post de muitos. Ao longo desta série, irei mostrar como trabalhar literalmente com esses working copies, métodos eficazes de trabalho, merges, edição de conflitos, entre outros. Esperem que tenham gostado. 🙂

Grande Abraço!