Como funciona um sistema de controle de versão?

Após definir o que são os Sistemas de Controle de Versão (SCV) e quais são os seus tipos, chegou a hora de entender como eles funcionam.

Para melhor entendimento, vou dividir a explicação do funcionamento de um Sistema de Controle de Versão em três etapas: Funcionamento Geral, Funcionamento em Sistemas Centralizados e Funcionamento em Sistemas Distribuídos.

1. Funcionamento Geral

O funcionamento geral é a base para qualquer tipo de SCV. O versionamento precisa de dois elementos para funcionar: um repositório e uma área de trabalho.

O repositório é onde ficam armazenadas todas as versões e também todas as informações de controle como data de alteração, quem alterou, etc. Já a área de trabalho é onde ficam os arquivos que o usuário está modificando.

Dessa forma, o usuário precisa baixar uma das versões do repositório para a sua área de trabalho utilizando o comando "update". Após isso, ele pode fazer todas as modificações desejadas e enviar o arquivo modificado de volta para o repositório através do comando "commit". Ao enviar essas modificações, o usuário estará gerando uma nova revisão dentro do repositório. Esse relacionamento pode ser observado na imagem abaixo.

2. Funcionamento Centralizado

Entendido o funcionamento geral de um SCV, agora vamos aplicar ao SCV Centralizado. Nesse tipo de SCV está presente o conceito de múltiplos usuários que se comunicam com um servidor. Dessa forma, podemos definir o servidor como o repositório e cada usuário como uma área de trabalho diferente. O funcionamento segue então os mesmos passos anteriormente explicados: os usuários alteram os arquivos nas suas áreas de trabalho e baixam ou enviam para o único repositório que está contido no servidor. Isso tudo utilizando os mesmos comandos: commit e update.

3. Funcionamento Distribuído

Nesse último tipo de SCV iremos trabalhar com o conceito de múltiplos usuários que contém uma cópia do repositório localmente. Dessa forma, todo a comunicação e funcionamento local permanece idêntico aos exemplos anteriores: arquivos serão alterados na área de trabalho e guardados no repositório. A diferença agora é que um repositório precisa se comunicar com outro para sincronizar as versões salvas pelos usuários. Essa sincronização vai ser realizada através do comando "pull" para baixar as alterações de um repositório para outro e do comando "push" para enviar as alterações de um repositório para outro. Esses relacionamentos podem ser vistos na imagem abaixo.


Basicamente essas são as possíveis formas de funcionamento de um Sistema de Controle de Versão. Nos próximos posts iremos explicar mais sobre os SCVs existentes, bem como os seus benefícios e algumas outras curiosidades.

Fonte: Blog Pronus

Autor do post: Edgar Lima

Comentários

  1. Uma coisa legal que eu descobri esse período, foi o uso de fluxos de trabalho desenvolvidos para o git. Existem vários, eu uso o chamado Git Flow, que também é o mais conhecido pela comunidade do Git. Através dele você consegue gerenciar o lançamento de releases e correções durante estes lançamentos. Leia sobre isso em: https://www.atlassian.com/git/tutorials/comparing-workflows.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Plano de Projeto de Software do SIUR

Git

Sobre a ferramenta Github