O Repositório Subversion, Definição

Antes de entrarmos no vasto tópico da administração do repositório, vamos primeiro definir o que é um repositório. Como ele se parece? Como ele se sente? Ele gosta de chá gelado ou quente, doce, e com limão? Como um administrador, será esperado que você entenda a composição de um repositório tanto da perspectiva do Sistema Operacional—como o repositório se parece e se comporta em relação a ferramentas que não são do Subversion—e de uma perspectiva lógica—relacionada com a forma com que os dados são representados dentro do repositório.

Vendo pelos olhos de um típico navegador de arquivos (como o Windows Explorer) ou de ferramentas de navegação em sistemas de arquivos baseadas em linha de comando, o repositório Subversion é apenas outro diretório cheio de coisas. Existem alguns subdiretórios que possuem arquivos de configuração que podem ser lidos por humanos, e outros que não são tão fáceis de serem lidos, e assim por diante. Como em outras áreas do projeto do Subversion, modularidade tem grande importância, e a organização hierárquica é usada pra controlar o caos. Assim, uma olhada superficial nas partes essenciais é suficiente para revelar os componentes básicos do repositório:

$ ls repos
conf/  dav/  db/  format  hooks/  locks/  README.txt

Aqui está uma pequena pincelada do que exatamente você está vendo nessa lista do diretório. (Não fique assustado com a terminologia—uma explicação mais detalhada desses componentes está disponível em algum lugar nesse e em outros capítulos.)

conf

Um diretório contendo arquivos de configuração do repositório.

dav

Um diretório onde ficam os arquivos usados pelo mod_dav_svn.

db

Local onde são armazenados todos os seus dados versionados.

format

Um arquivo que contém um simples inteiro que indica o número da versão do repositório.

hooks

Um diretório cheio de modelos de scripts (e scripts, uma vez que você tenha instalado algum).

locks

Um diretório para arquivos travados do Subversion, usado para rastrear acessos ao repositório.

README.txt

Arquivo que meramente informa a seus leitores que eles estão olhando para um repositório Subversion.

É claro que, quando acessado por meio das bibliotecas do Subversion, esse estranho conjunto de arquivos e diretórios de repente torna-se uma implementação de um sistema de arquivos virtual, versionável e completo, com gatilhos hook de eventos personalizáveis. Este sistema de arquivos tem o seu próprio entendimento sobre diretórios e arquivos, muito semelhante aos conceitos usados em sistemas de arquivos reais (como NTFS, FAT32, ext3, e assim por diante). Mas este é um sistema de arquivos especial—ele controla os diretórios e arquivos a partir das revisões, mantendo todas as mudanças que você fez neles armazenadas com segurança e sempre acessíveis. É aqui onde todos os seus dados versionados vivem.