O que é e porque usar um sistema de controle de versão

Você provavelmente já ouviu falar de SVN, GIT, CVS… Mas o que são e pra que servem?

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

Isto é o título

Lorem ipsum dolor sit amet consectetur adipiscing elit dolor
plugins premium WordPress