Gerência - Controle de Versão

Controle de Releases em Equipes Simplificado usando VS 2005/2008 e Tortoise

Gerenciamento de Projetos com VS 2005/2008. Controle de Releases utilizando a ferramenta Tortoise e VisualSVN.

por Fernando Passaia de Alencar



Olá. Esse artigo foi desenvolvido baseado na dificuldade na empresa que enfrentamos a algumas semanas.
O cenário era o seguinte: Tínhamos muitos projetos em aberto, estávamos trabalhando em equipe de 4 pessoas, alternadamente nos projetos, ambos estavam bem atrasados, e então começamos a ter problemas com Releases. Foi quando um membro da Equipe “substituiu” um Release no nosso Servidor e acabou ocasionando problema num Release de outro desenvolvedor em uma Solução, e nós nos perguntamos “Com quem está o sistema mais atualizado? Quem alterou o que e aonde?”. Quando precisava de um “backup” era ainda pior, pois, cadê, quando, quem fez? Pois bem, me parecia um pouco “atrasado”, estarmos trabalhando com tecnologia de ponta – C# 3.5, Sql Server, 3 Camadas MVC, Sistemas já um pouco extensos, e nossa gerência de projetos estar simplesmente “desandada”. Não é a toa que o profissional Gerente de Software é o que mais ganha na nossa área. Pois bem.

Bom, foi então que decidi entrar numa pesquisa. Foram 2 dias de pesquisa até encontrar a ferramenta correta no nosso caso, e mais 2 dias pra implantar e colocar todos os projetos lá organizados de maneira perfeita! Isso trabalhando uma pessoa só, eu no caso. Porém – Foi uma das melhores coisas que fizemos, a organização, produtividade, ganho em equipe foi simplesmente maravilhoso, além de eliminarmos totalmente os problemas de “bagunça” e “inferno” de classes, projetos, e etc. Que fique claro, o software que irei decorrer nesse artigo é apenas para o Controle de Release, de Versões. Para equipes maiores, com Controle de Tempo de Projeto, Colaboração e etc, procure outra ferramenta e artigo sobre Visual Studio Team System, muito mais completo e abrangente nesses casos.


Pois bem. Vou discorrer sobre duas ferramentas maravilhosas:
TORTOISE SVN – É uma ferramenta LIVRE, gratuita, exatamente de Controle de Versões. A Principio, estava tudo bem, apesar da dificuldade de adaptação no começo, fui começando a entender o funcionamento dela. Ela gerência TUDO, qualquer coisa, documentos, projetos de software, txt, .zip, .exe, o que você jogar pra dentro dela, está conversado. A idéia é a seguinte: Cria-se um REPOSITÓRIO de dados, uma pasta, e após isso, vai se organizando tudo dentro dela. O Tortoise mantem as versões antigas, novas, enfim, a cada vez que você sobe uma alteração, ele arquiva e documenta, e mantem as alterações antigas todas lá, fazendo o controle total.

Mas mesmo assim, ainda não estava legal, pois eu teria um certo trabalho dar o treinamento a minha equipe, para subir os arquivos para a ferramenta, enfim, ainda assim seria meio trabalhoso manter a organização.

VISUALSVN – Então que me apareceu essa ferramentinha. Não é GRATUITA, mas muito bacana mesmo, tem um Trial completo de 30 dias! Ela é a ferramenta que “interliga” o Visual Studio ao Tortoise, fazendo toda a interface, interação, direto do Visual Studio com o Tortoise. Então, as coisas ficaram maravilhosas, com 1 clique eu comparava a minha versão com a qual estava no Servidor, com outro, subia minhas alterações e documentava no Servidor, mais 1 clique e eu baixava tudo que meu parceiro de equipe tinha feito, enfim, meus problemas estavam resolvidos. O VisualSVN funciona com VS 2005, e com o VS 2008 perfeitamente, inclusive versões Express, sem problemas.

TortoiseExplorer.jpg

Bom, vamos explicar um pouco o Uso do Sistema. Eu procurarei “DETALHAR” passo a passo, o que você precisará fazer para implantar esse software de gerência de projetos em sua empresa. A grosso modo é isso, claro, ai vai de acordo com sua empresa, pode ser que você siga esse roteiro, pode ser que siga com menos passos, com mais passos, enfim, ai é de administrador para administrador e de gerente pra gerente.

PASSO 1:
Primeiro, é preciso criar um Repositório. Para isso, basta selecionar a Unidade, seja de Rede, seja Local, e clicar em “CREATE REPOSITORY HERE”. Geralmente isso é feito no seu Servidor de Projetos, local onde ficarão organizados e centralizados esses projetos. Após isso, acabou, você só visualizará seus arquivos pelo Repo-Browser, não será possível usar o Explorer para achar facilmente seus projetos. O Repositório é o local onde ficam armazenados todos os arquivos, todos os projetos, todas as versões e etc, por isso aconselho, mantenha sempre uma mídia com backup desse diretório em caso de algum problema em seu Servidor.

PASSO 2:
Criar os Diretórios de seus Sistemas dentro do Repositório do TORTOISE SVN. Aqui será a sua organização, A nossa gerência é baseada no descrito na imagem a seguir, temos uma pasta para as customizações dos clientes, outra pras nossas soluções (software) e por ultimo, uma apenas para projetos web. Dentro de casa pasta – a referente documentação, os utilitários, dlls, programas, apostilas, etc, dentro de cada projeto.
OrganizacaoProjeto.jpg
PASSO 3:
Bom, esse sinto em dizer, é o trabalho mais “árduo” a ser feito, que é simplesmente organizar seus projetos e subir eles para o TORTOISE para que eles possam ser gerenciados. Então, você irá instalar o VisualSVN no seu computador, e começará a trabalhar diretamente com o Visual Studio. Bom, trabalhoso, sim, mas mãos a obra, vamos para o Visual Studio que, é onde toda a mágica acontece!

VisualStudio.jpg

Bom, o primeiro passo, é entender o ADD SOLUTION TO SUBVERSION. Com isso, você adicionará um projeto seu para um controle no TORTOISE. Basta abrir seu projeto (Sistema A) e clicar nesse botão, então, indicar a pasta do Repositório, e automaticamente você subirá a solução para o controle. Após isso, clique no botão “Commit” para subir os arquivos para o Servidor e pronto, seu projeto foi adicionado para controle. Você terá que seguir esses passos com todos seus projetos, adicionar 1 por 1 ao controle, para que você possa trabalhar com ele. É um pouco cansativo – mas garanto que o retorno é muito melhor e você com certeza terá recompensa pelo trabalho!

PASSO 4:
Agora é hora de instalar o Tortoise e o VisualSVN aos computadores de seus Colaboradores de Projeto. Basta aplicar em cada máquina a instalação, que é bem simples, e dar um treinamento básico. Lembre-se sempre! Agora, no micro de sua equipe, você vai clicar em “Get Solution from Subversion”, irá pegar uma solução do repositório e trabalhar com ela. NÃO, não será possível usar um projeto já presente no micro e integrar ao Tortoise, você precisa baixar direto dele, para que o projeto trabalhe conectado ao gerenciador de projetos! No geral, resumindo, o seu trabalho e de sua equipe será simplesmente, clicar no botãozinho com seta verde pra cima, para subir os arquivos pro Servidor, e no outro, com seta pra baixo, pra baixar as alterações do Servidor. Esse será o processo feito 99% das vezes entre você e sua equipe. Abaixo eu simulo uma operação de “Commit”, onde eu estou subindo 7 arquivos para o Servidor... São os arquivos que eu alterei.

Commit no Servidor.jpg
O processo daqui pra frente é esse. Eu faço alterações? Clico no botão verde pra cima e subo pro servidor, geralmente eu documento o que foi feito, nessa caixa de “Recent Messages” para que meus companheiros possam ver na hora de descarregar. Meu amigo de equipe fez alterações, ele sobe pro servidor, logo após isso, eu clico e descarrego isso do Servidor. O Tortoise fará o Controle das Releases pra mim. Eu tenho outras configurações e outras opções no sistema, mas isso deixarei para que vocês mesmos prossigam descobrindo o que é possível ser feito!


DICAS:
Bom, existe um BUG que as vezes “complica” para ser descoberto. Eu trabalho com unidades de REDE mapeadas (ou seja, F: é a unidade C do Servidor, G: a unidade D do Servidor e assim por diante). Caso você reinicie sua máquina, geralmente o Tortoise não “encontra” a unidade, a menos que ela tenha sido aberta. É o famoso “bug de rede”, então eu sempre faço o seguinte, ao iniciar o Windows, eu vou lá e abro a unidade, o Windows “conecta” ao servidor e “localiza e mapeia” as unidades, ai, o Tortoise funciona corretamente. Ou seja? Sempre que iniciar o micro, vá lá na unidade de rede e abra ela. Se quiser, bote o Windows pra já abrir uma pasta de rede automaticamente, isso também resolve sem você ter que se preocupar.

Uma dica importante é SEMPRE manter um backup atualizado de sua pasta de projeto. Eu centralizei o Repositório inteirinho em uma única pasta. A cada 2 dias no máximo, vou lá com um PenDrive, e salvo ela inteirinha. Caso o Servidor dê problemas, algum arquivo se corrompa e etc, terei sempre um backup salvo. Basta voltar a pasta para o lugar e todas as informações estarão 100% salvas! O Tortoise algumas vezes “enche o saco”, principalmente quando alguém atualiza alguma classe em que você está mexendo, enfim, ou o projeto que está no Servidor parece “diferente” estruturalmente do seu, enfim. Mantenho sempre um backup up-to-date e já precisei pelo menos 1 vez retornar ele ao Servidor.

O mau da “bolinha vermelha”. Quando o software marcar algo com “vermelho”, quer dizer que ALGUÉM ATUALIZOU UM ARQUIVO QUE VOCÊ ESTÁ MEXENDO, ou seja? Nós dois por exemplo, estamos editando a mesma classe, o mesmo arquivo. Ai, teremos que conversar e nos acertar para poder subir uma versão definitiva.

PERGUNTAS MAIS FREQÜENTES:
Baseado em que me foi perguntado pela minha equipe, e também por outros profissionais da área, parceiros e enfim, já deixarei as respostas para vocês, mais dúvidas que estiverem ao meu alcance poderão ser tiradas comigo por e-mail, MSN ou etc.

O TORTOISE SEMPRE SALVA TUDO NOVAMENTE, A CADA RELEASE?
Não!
  Cada vez que você clica no botão “commit”, ele só sobe o que você alterou... então vamos supor, você tem 30 classes no sistema, e mais 50 arquivos... e você só alterou 2 classes. Ele só irá subir as 2 classes. Você não precisa se preocupar com espaço em disco e etc.

QUAL O VALOR DA LICENÇA DO VISUALSVN?
Sinceramente? Não sei. Como eu disse, são duas ferramentas, o Tortoise é gratuito, que é o gerenciador em si. O VisualSvn (integrador com o Visual Studio) é pago, e possui uma versão 100% funcional de 30 dias. Sinceramente? Não sei o valor da licença, mesmo por que não adquiri uma.

É POSSÍVEL UTILIZAR APENAS A FERRAMENTA DE GERENCIA TORTOISE?
Sim! O Visual SVN é apenas o integrador com o Visual Studio! Sim, seria possível usar apenas a ferramenta sem fazer a integração com a IDE, apesar de ser um pouco mais trabalhoso e árduo.

O SOFTWARE DE GERENCIA DE PROJETOS AJUDOU SUA EQUIPE?
Sim! Ajudou e muito, na verdade a ferramenta foi uma mão na roda. Hoje em dia é muito mais fácil de se trabalhar, no inicio do dia clico no “update”, pego as atualizações feitas pelos meus colegas de equipe no Servidor, e trabalho... no fim do dia, faço um “commit” e subo todo meu trabalho... se algo estiver desatualizado, ele já me avisa, marca a bolinha amarela, enfim, acabaram-se meus problemas. Acabou aquele negócio de “quem está com o mais atual? Em que você mexeu? O que precisa? Me passa seu projeto, joga as dlls atualizadas...”, fim. Sim, deu trabalho, no inicio, foi 3 dias apanhando da ferramenta, conceitos, implantação, treinamento... mas depois, resolvido, nunca mais tivemos problemas e estamos a quase 2 meses utilizando-a e o ganho, é incomparável!


Espero que esse artigo tenha ajudado alguns colegas de trabalho.
Esse software não é tão completo como por exemplo, o Team Suite, existem vários outros artigos muito mais completos você encontrará na internet, sendo que esse também é um software muito mais abrangente. Mas todavia, acredito que para pequenos casos e circunstâncias, o Tortoise é uma grande ferramenta e muito útil. Quaisquer dúvidas, estarei as disposições através dos contatos abaixo. Muito obrigado e não deixem de comentar!

Fernando Passaia de Alencar – Analista/Desenvolvedor de Sistemas
FuturaData Tecnologia em Sistemas de Informação -
www.futuradata.com.br
E-mail/Msn/Skype/GoogleTalk
: fernandopassaia@futuradata.com.br
Tels: (011) 7871-2993 - (011) 4640-2833 - Nextel ID: 84*72044

Fernando Passaia de Alencar

Fernando Passaia de Alencar - Analista/Desenvolvedor de Sistemas, estudante do último ano de Sistemas de Informação, possui experiência em desenvolvimento com C#, ASP.NET e Flash e outras ferramentas. Possui conhecimento de regras de negócio em comércios e já desenvolveu sistemas voltados a área de automação de negócios