quinta-feira, 28 de janeiro de 2016

Ferramentas de Controle de Versão - Evolução

Vamos entender o que é uma ferramenta de controle de versão e alguns tipos de Controle de Versão criados ao longo do tempo.

Um sistema de controle de versão como o próprio nome diz é responsável por registrar mudanças feitas em um arquivo, ou em um conjunto de arquivos de forma que possam ser recuperadas versões específicas, quando necessário.
Ao contrário do que muitas pessoas pensam, a utilização desse tipo de sistema não se limita apenas a pessoas que trabalham na área de TI (Tecnologia da Informação), mas também nas mais variadas áreas. Um bom exemplo que podemos citar é o caso de um designer gráfico que pode armazenar versões de um projeto que estejam desenvolvendo e caso precisem, possam reverter arquivos para uma versão anterior, comparar mudanças feitas, ver quem foi o último a modificar o projeto, etc.

Sistemas de Controle de Versão Locais

Muitas pessoas para criarem "cópias de segurança" de seus arquivos, os salvam em outros diretórios, mas isso também é um grande risco já que falhas podem acontecer e arquivos serem sobrescritos sem querer. Para lidar com esse problema, alguns desenvolvedores criaram há muito tempo uma ferramenta de controle de versão;







Uma das ferramentas mais populares foi um sistema chamado rcs, que ainda é distribuído em muitos computadores até hoje. Até o popular Mac OS X inclui o comando rcs quando se instala o kit de ferramentas para desenvolvedores. Basicamente, essa ferramenta mantém conjuntos de patches (ou seja, as diferenças entre os arquivos) entre cada mudança em um formato especial; a partir daí qualquer arquivo em qualquer ponto na linha do tempo pode ser recriado ao juntar-se todos os patches.





Sistemas de Controle de Versão Centralizados
Outro grande problema que as pessoas encontram estava na necessidade de trabalhar em conjunto com outros desenvolvedores, que usam outros sistemas. Para lidar com isso, foram desenvolvidos Sistemas de Controle de Versão Centralizados (Centralized Version Control System ou CVCS). Esses sistemas, como por exemplo o CVS, Subversion e Perforce, possuem um único servidor central que contém todos os arquivos versionados e vários clientes que podem resgatar (check out) os arquivos do servidor. Por muitos anos, esse foi o modelo padrão para controle de versão.


Sistemas de Controle de Versão Distribuídos

É aí que surgem os Sistemas de Controle de Versão Distribuídos (Distributed Version Control System ou DVCS). Em um DVCS (tais como Git, Mercurial, Bazaar ou Darcs), os clientes não apenas fazem cópias das últimas versões dos arquivos: eles são cópias completas do repositório. Assim, se um servidor falha, qualquer um dos repositórios dos clientes pode ser copiado de volta para o servidor para restaurá-lo. Cada checkout (resgate) é na prática um backup completo de todos os dados.



Nenhum comentário:

Postar um comentário