SVN - Conceitos Básicos

O que é o Sistema de Controle de Versão?

Version Control System (VCS) é um software que ajuda os desenvolvedores de software a trabalharem juntos e manterem um histórico completo de seu trabalho.

Following are the goals of a Version Control System.

  • Permitir que os desenvolvedores trabalhem simultaneamente.
  • Não substituam as alterações uns dos outros.
  • Mantenha a história de cada versão de tudo.

A VCS is divided into two categories.

  • Sistema de Controle de Versão Centralizado (CVCS), e
  • Sistema de controle de versão distribuído / descentralizado (DVCS).

Neste tutorial, vamos nos concentrar apenas no Sistema de Controle de Versão Centralizado e especialmente Subversion. O Subversion se enquadra no sistema de controle de versão centralizado, o que significa que ele usa um servidor central para armazenar todos os arquivos e permite a colaboração em equipe.

Terminologias de controle de versão

Vamos começar discutindo alguns dos termos que usaremos neste tutorial.

  • Repository:Um repositório é o coração de qualquer sistema de controle de versão. É o local central onde os desenvolvedores armazenam todo o seu trabalho. O repositório não apenas armazena arquivos, mas também o histórico. O repositório é acessado através de uma rede, atuando como um servidor e uma ferramenta de controle de versão atuando como um cliente. Os clientes podem se conectar ao repositório e, em seguida, podem armazenar / recuperar suas alterações de / para o repositório. Ao armazenar as alterações, um cliente torna essas alterações disponíveis para outras pessoas e, ao recuperar as alterações, um cliente recebe as alterações de outras pessoas como uma cópia de trabalho.

  • Trunk: O tronco é um diretório onde todo o desenvolvimento principal acontece e normalmente é verificado pelos desenvolvedores para trabalhar no projeto.

  • Tags: O diretório de tags é usado para armazenar instantâneos nomeados do projeto. A operação de tag permite dar nomes descritivos e memoráveis ​​para uma versão específica no repositório.

    Por exemplo, LAST_STABLE_CODE_BEFORE_EMAIL_SUPPORT é mais memorável do que

    UUID do repositório: 7ceef8cb-3799-40dd-a067-c216ec2e5247 e

    Revisão: 13

  • Branches:A operação de filial é usada para criar outra linha de desenvolvimento. É útil quando você deseja que seu processo de desenvolvimento siga em duas direções diferentes. Por exemplo, ao lançar a versão 5.0, você pode querer criar um branch para que o desenvolvimento dos recursos 6.0 possa ser mantido separado das correções de bugs do 5.0.

  • Working copy:A cópia de trabalho é um instantâneo do repositório. O repositório é compartilhado por todas as equipes, mas as pessoas não o modificam diretamente. Em vez disso, cada desenvolvedor verifica a cópia de trabalho. A cópia de trabalho é um local de trabalho privado onde os desenvolvedores podem fazer seu trabalho ficando isolados do resto da equipe.

  • Commit changes:Commit é um processo de armazenamento de alterações do local de trabalho privado para o servidor central. Após a confirmação, as alterações são disponibilizadas para toda a equipe. Outros desenvolvedores podem recuperar essas mudanças atualizando sua cópia de trabalho. Commit é uma operação atômica. Todo o commit é bem-sucedido ou é revertido. Os usuários nunca veem o commit concluído pela metade.