SVNBOOK Chap5 The Subversion Repository Defined

De Framalang Wiki.

Cette page fait partie du projet Version control with subversion.

Pseudo Code Rôle Statut
Hotshot92 Traduction Fait
SVF 1ère Relecture Fait
Validation


The Subversion Repository, Defined

The Subversion Repository, Defined
Définition d'un dépôt Subversion

Before jumping into the broader topic of repository administration, let's further define what a repository is. How does it look? How does it feel? Does it take its tea hot or iced, sweetened, and with lemon? As an administrator, you'll be expected to understand the composition of a repository both from a literal, OS-level perspective—how a repository looks and acts with respect to non-Subversion tools—and from a logical perspective—dealing with how data is represented inside the repository.

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. A 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).

Seen through the eyes of a typical file browser application (such as Windows Explorer) or command-line based filesystem navigation tools, the Subversion repository is just another directory full of stuff. There are some subdirectories with human-readable configuration files in them, some subdirectories with some not-so-human-readable data files, and so on. As in other areas of the Subversion design, modularity is given high regard, and hierarchical organization is preferred to cluttered chaos. So a shallow glance into a typical repository from a nuts-and-bolts perspective is sufficient to reveal the basic components of the repository:

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

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. A 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'oeil rapide dans un dépôt typique est suffisant pour obtenir la liste des composants essentiels d'un dépôt :

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

Here's a quick fly-by overview of what exactly you're seeing in this directory listing. (Don't get bogged down in the terminology—detailed coverage of these components exists elsewhere in this and other chapters.)

  • conf
A directory containing configuration files
  • dav
A directory provided to mod_dav_svn for its private housekeeping data
  • db
The data store for all of your versioned data
  • format
A file that contains a single integer that indicates the version number of the repository layout
  • hooks
A directory full of hook script templates (and hook scripts themselves, once you've installed some)
  • locks
A directory for Subversion's repository lock files, used for tracking accessors to the repository
  • README.txt
A file whose contents merely inform its readers that they are looking at a Subversion repository

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 stocker ses informations privées
  • db
le magasin de données pour toutes vos données suivies en versions
  • format
un fichier contenant un unique entier qui indique le numéro de version de l'organisation du dépôt
  • hooks
un répertoire plein de modèles de scripts d'interception (et les scripts d'interception eux-mêmes, une fois installés)
  • locks
un répertoire pour les fichiers de verrous du dépôt Subversion, utilisé pour garder trace de qui accède 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
Of course, when accessed via the Subversion libraries, this otherwise unremarkable collection of files and directories suddenly becomes an implementation of a virtual, versioned filesystem, complete with customizable event triggers. This filesystem has its own notions of directories and files, very similar to the notions of such things held by real filesystems (such as NTFS, FAT32, ext3, etc.). But this is a special filesystem—it hangs these directories and files from revisions, keeping all the changes you've ever made to them safely stored and forever accessible. This is where the entirety of your versioned data lives.
Bien sûr, quand on y accède via les bibliothèques Subversion, cet ensemble de fichiers et de répertoire se transforme en un système virtuel de fichiers suivis en versions, 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, gardant une trace des tous les changements effectués de manière sûre et accessible pour toujours. C'est là que la totalité de vos données suivies en versions réside.