Capítulo 2. Conceitos básicos do Controle de Versão

Índice

O Repositório
Modelo de controles
O problema do compartilhamento de arquivo
A solução Alocar-Modificar-Desalocar
A solução Copiar-Modificar-Unificar
O que o Subversion faz?
Subversion em Ação
Cópias de Trabalho
URLs do Repositório
Revisões
Como Cópia de Trabalho Acompanham o Repositório
Resumo

Este capítulo é uma versão levemente modificada do mesmo capítulo do livro do Subversion. Há uma versão disponível do livro do Subversion aqui: http://svnbook.red-bean.com/.

Este capítulo é uma pequena, simplória introdução ao Subversion. Se você é novato em controle de versões, este capítulo com certeza é para você. Nós começamos com uma abordagem geral dos conceitos do controle de versão, seguindo nossas idéias sobre o Subversion, e mostrando alguns exemplos simples de uso do Subversion.

Embora os exemplos desse capítulo mostre pessoas compartilhando uma porção de código de fonte, tenha em mente que Subversion pode controlar qualquer conjunto de arquivos - não está limitado a ajudar programadores.

O Repositório

Subversion é um sistema centralizador de compartilhamento de informação. A essência é um repositório, que é um arquivo central de dados. O repositório grava informação no formato de diretório de arquivo de sistemas - uma típica hierarquia de arquivos e diretórios. Quantos clientes quiser se conectam no repositório, e então leem e escrevem nesses arquivos. Escrevendo dados, um usuário torna a informação disponível para outros; lendo os dados, um usuário recebe a informação de outros.

Figura 2.1. Um típico sistema Cliente/Servidor

Um típico sistema Cliente/Servidor

Então porque isto é interessante? Até agora, isso se parece com a definição de um típico servidor de arquivos. E de verdade, o repositório é um tipo de servidor de arquivos, mas não é sua função normal. O que o repositório do Subversion faz de especial é que ele guarda cada modificação feita: cada modificação para cada arquivo e mesmo as modificações na prória estrutura de diretórios, como adição, exclusão e reorganização de arquivos e diretórios.

When a client reads data from the repository, it normally sees only the latest version of the filesystem tree. But the client also has the ability to view previous states of the filesystem. For example, a client can ask historical questions like, what did this directory contain last Wednesday? , or who was the last person to change this file, and what changes did they make? These are the sorts of questions that are at the heart of any version control system: systems that are designed to record and track changes to data over time.