Texto escrito por Diego Felix. Publicado originalmente em junho/2016.
Quais as vantagens de se utilizar e os principais perigos de não se usar um sistema de controle de versão de código fonte?
Um sistema de controle de versão é um software (ou mais de um) que se encarrega de gerenciar as mudanças nos arquivos físicos. Esses arquivos podem ser basicamente de qualquer tipo, como documentos, imagens e código fonte de algum programa. Por gerenciar mudança entenda-se avisar se teve mudança em determinado arquivo, quem fez tal mudança, quando esta foi feita e, idealmente, porque esta alteração foi implementada, entre outras funcionalidades associadas à segurança e organização de arquivos e suas versões.
Ok, ok. Mas preciso mesmo disso tudo? Não posso tirar back-ups de vez em quando e salvar numa pasta ou me mandar por e-mail?
Pode, mas diz a experiência diz que esses métodos sistêmicos não surtem o efeito desejado e acabam causando mais dor de cabeça, por diversos motivos. Entre eles, falhas de processo e disciplina ou simplesmente um enorme trabalho pra descobrir o que foi alterado de uma versão pra outra.
Um sistema de controle de versão possui diversas vantagens no seu uso, dentre elas:
- Segurança: Cada software de controle de versão de mecanismos para evitar possíveis corrupções em arquivos. Além disso, apenas pessoas autorizadas e identificadas podem mexer no código fonte controlado.
- Versionamento: Caso se deseje voltar a versão de um determinado arquivo por algum erro cometido ou simplesmente mudança de escopo, é possível fazê-lo de forma simples e estruturada, minimizando eventuais erros e efeitos colaterais.
- Rastreabilidade: Quando se trata de algo importante, é sempre interessante saber “Quem”, “Quando”, “Como”, “Por que” e “Onde”. Todos esses metadados estão disponíveis nas ferramentas mais populares de controle de versão.
- Organização: Os sistemas que possuem interface visual disponibilizam uma visualização completa do ciclo de vida de cada arquivo controlado, desde sua criação até o momento atual.
- Colaboração: O trabalho em equipe, principalmente as distribuídas, é muito facilitado. Pessoas que talvez nem se conhecem pode colaborar num determinado projeto cujo repositório central é disponibilizado a todos os envolvidos.
- Confiança: O uso de repositórios remotos ajuda muito na recuperação de eventos imponderáveis. Situações do tipo “Perdemos o projeto inteiro que estava na máquina de fulano” são minimizadas. Além disso, é possível testar novas ideias sem danificar a linha base do desenvolvimento.
Esse pontos elencados acima impactam diretamente na produtividade e na sanidade (Sim, sanidade!) da equipe de desenvolvimento e dos gestores do projeto.
Agora que você já tem os argumentos para estar convencido que é necessário e fundamental o controle de versão de código fonte, vale a pena aprender os conceitos de um controle de versão e, pelo menos, uma das ferramentas mais comuns. Hoje em dia, as mais populares são GIT (https://git-scm.com) e SVN (https://subversion.apache.org) e ambas tem clientes (softwares que auxiliam o uso dos sistemas de controle de versão) bem consolidados no mercado, como o TortoiseSVN (https://tortoisesvn.net/) e o SourceTree (https://www.sourcetreeapp.com/)
Quer conhecer mais sobre soluções digitais inovadoras?
Acesse: http://www.wkm.com.br