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.