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 AlencarOlá. 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.
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.
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!
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.
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
- Controlando Versões: Team Foundation Version Control (TFVC) - Check Out e WorkspaceControle de Versão
- TortoiseCVS + CVSTrac - Controle de versões e Gerenciamento de BugsControle de Versão
- Conhecendo o Visual Studio Team System Source ControlControle de Versão
- Trabalhando com PHP e CVS no EclipsePHP
- Quem mexeu no meu código?Controle de Versão