domingo, 7 de fevereiro de 2016

Terminologias no Controle de Versionamento

Boa noite,

       Esta postagem tem o intuito de trazer definições acerca do controle de versionamento, de modo a sanar possíveis dúvidas do leitor quanto ao tema, como também garantir total compreensão do mesmo quanto a demais postagens desse blog que possam vir a utilizar determinadas terminologias. Os termos serão apresentados em inglês, pois é nessa língua que os desenvolvedores costumam lidar com elas, e referem-se ao controle de versionamento centralizado, como é o caso do Apache Subversion (em breve faremos uma postagem a respeito das diferenças entre controle centralizado e distribuído). 

       Antes das definições, segue tirinha que faz uma brincadeira com aqueles que não conhecem ou não gostam de usar ferramentas de controle de versão, nela, um programador utiliza pendrives para seu controle de versionamento pessoal:

Fonte: http://www.snipe.net/wp-content/uploads/2009/03/138_Version_Control-1306631688.png
  • Repositório (Repository): Local onde todo o trabalho, e também seu histórico, dos desenvolvedores é armazenado. Um repositório atua como servidor, enquanto uma ferramenta de controle de versionamento atua como cliente. Clientes conectam-se a repositórios para armazenar, disponibilizar mudanças para outros clientes, ou recuperar mudanças e atualizações fornecidas por outros clientes.
  • Trunk: Diretório onde toda a atividade principal dos desenvolvedores geralmente acontece.
  • Tags: Permitem dar nomes a fases específicas de um projeto, a versões dele, por exemplo: "VERSÃO_INSTALADA_ATUALMENTE_NO_CLIENTE".
  • Branches: Um Branch, ou ramo em português, pode ser usado para se criar uma outra linha de desenvolvimento, muito útil para se separar o desenvolvimento de versões futuras do processo de correção de bugs de versões atuais. Afigura abaixo ilustra o processo de ramificação (branching).

Fonte: http://i.stack.imgur.com/oBsKl.gif




  • Working Copy: Funciona como um snapshot do repositório. O repositório é compartilhado por todos do projeto, mas não é modificado diretamente por ninguém, os envolvidos no projeto trabalham diretamente e isoladamente em suas "cópias de trabalho", que são obtidas de um repositório através de "checkout", uma próxima postagem trará mais informações acerca do seu uso.
  • Commit: Brasileiro costumam usar esse termo como "comitar", uma palavra aportuguesada que significa, em programação, enviar as mudanças realizadas em uma working copy para os demais participantes de um projeto de desenvolvimento. É preciso usar o commit com cautela, de modo a não causar problemas inesperados, como a garotinha do meme abaixo.
Fonte: http://cdn.meme.am/instances/500x/64226295.jpg

Referências:

What is a Version Control System? Disponível em <http://www.tutorialspoint.com/svn/svn_basic_concepts.htm>. Acesso em 07/02/1016.

Um comentário:

  1. Legal, bem claro e explicativo. Só senti falta da definição de update que traz as modificações contidas no repositório (origem) para a área de trabalho (destino).

    ResponderExcluir