Définition d'un dépôt Subversion

Avant d'aborder le vaste sujet de l'administration d'un dépôt, définissons plus précisément ce qu'est un dépôt. À quoi ressemble-t-il ? Que ressent-il ? Est-ce qu'il préfère son thé chaud ou glacé, sucré, avec une tranche de citron ? En tant qu'administrateur, vous vous devez de comprendre de quoi est composé un dépôt, à la fois au niveau du système d'exploitation (à quoi ressemble le dépôt et comment il réagit vis-à-vis des outils autres que Subversion) et au niveau logique de l'organisation des données (comment elles sont représentées à l'intérieur du dépôt).

Du point de vue d'un explorateur de fichiers classique (comme Windows Explorer) ou d'un outil de navigation du système de fichiers en ligne de commande, un dépôt Subversion n'est rien d'autre qu'un répertoire contenant plein de choses. Il y a des sous-répertoires avec des fichiers de configuration lisibles par un humain, des sous-répertoires avec des fichiers de données binaires déjà bien moins lisibles, etc. À l'instar d'autres parties de Subversion, la modularité est une préoccupation majeure et l'organisation hiérarchique prévaut sur le bazar. Un coup d'œil rapide dans un dépôt ordinaire est suffisant pour obtenir la liste des composants essentiels d'un dépôt :

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

Effectuons un survol rapide de ce que nous voyons dans ce répertoire (ne vous inquiétez pas si vous ne comprenez pas tous les termes employés, ils sont expliqués dans ce chapitre ou ailleurs dans ce livre) :

conf

Un répertoire contenant des fichiers de configuration.

dav

Un répertoire à disposition de mod_dav_svn pour y stocker ses informations privées.

db

Le magasin de données pour toutes vos données suivies en versions.

format

Un fichier contenant uniquement le numéro de version de l'organisation du dépôt.

hooks

Un répertoire plein de modèles de procédures automatiques (et les procédures automatiques elles-mêmes, une fois installées).

locks

Un répertoire fait pour les fichiers de verrous du dépôt Subversion, utilisé pour gérer les accès au dépôt.

README.txt

Un fichier qui ne fait qu'informer son lecteur qu'il est tombé sur un dépôt Subversion.

Bien sûr, quand on y accède via les bibliothèques Subversion, cet ensemble de fichiers et de répertoires se transforme en un système de fichiers suivis en versions virtuel, complet et comportant une gestion des événements personnalisable. Ce système de fichiers possède ses propres notions de répertoires et de fichiers, très similaires aux notions des systèmes de fichiers réels (tels que NTFS, FAT32, ext3, etc.). Mais c'est un système de fichiers spécial : il base ces répertoires et ces fichiers sur les révisions, conservant l'historique de tous les changements effectués de manière sûre et pérenne. C'est là que la totalité de vos données suivies en versions réside.