O título desta postagem já é uma provocação, pois em tese todo profissional que atua com desenvolvimento ou em atividades correlatas já sabe pra que versionar, ou deveria saber….

Dessa forma vamos do principio

Eu preciso controlar versão?

A resposta a esse questionamento será dada de forma automática através de um teste rápido com quatro questões:

1 – Você já perdeu alguma versão anterior de um arquivo de projeto?
2 – Manter mais de uma versão no ar ao mesmo é difícil?
3 – Já perdeu algum código porque alguém acidentalmente (ou não) sobrescreveu o seu arquivo?
4 – É difícil saber quais, quando e quem fez as alterações?

A essa altura, você já entendeu..

Precisa sim, controlar a versão do seu software!!!

Como posso fazer isso?

Em primeiro lugar é preciso entender que salvar e /ou compartilhar o código que está sendo desenvolvido em diretórios de rede, NÃO É O MESMO QUE CONTROLAR VERSÃO.

Isso é apenas uma forma de disponibilizar os arquivos de trabalho para os demais membros do time, porém abrindo o precedente para acidentes como a exclusão ou sobrescrita acidental de arquivos e o pior, sem controle do histórico das modificações.

O segundo passo é buscar informação sobre os modelos de versionamento disponíveis:

Centralizado, onde em resumo trata-se de um modelo onde o versionamento é feito de forma centralizada através da conexão com um servidor.

Descentralizado, onde cada diretório de trabalho é um repositório com histórico completo de total disponibilidade para acompanhamento, revisões e não depende de acesso a um servidor central.

E por fim definir a ferramenta que vai permitir a utilização de qualquer um dos modelos escolhidos, ou quem sabe fazer uso de um modelo hibrido, mesclando as duas possibilidades.

Que ferramenta posso utilizar?

A lista de ferramentas é bem grande começando pelo Azure DevOps que nos oferece a possibilidade de utilizar o modelo centralizada através do TVFC ou modelo descentralizado através do Git, tudo disponivel no recurso do Azure Repos.

Além deles temos ferramentas como GitLab, Bitbucket, GitHub, AWS Code Commit, Mercurial, Subversion e por ai vai

Concluindo…

Não importa o tamanho do time, se tem 1 ou 10 desenvolvedores, controlar versão é preciso!

Agora qual a melhor forma de fazer isso, que modelo utilizar, qual estratégia para gestão desses fontes e suas branches é algo que precisa ser discutido antes de qualquer atividade de desenvolvimento seja iniciada, pois como sabemos, uma vez que os trabalhos começam a adoção de qualquer modelo ou ferramenta encontrará muitos obstáculos.

Ficou curioso, quanto a qual modelo de Gestão de Fontes se encaixa melhor no seu dia a dia?

Acesso o canal da Konia no YouTube e assista Gestão de fontes centralizada ou descentralizada, o que é melhor?

É isso ai pessoal!

Espero ter ajudado.

Abraço e até a próxima.