Table des matières
Ce chapitre est une version légèrement modifiée du même chapitre dans le manuel de Subversion. Une version en ligne du manuel de Subversion est disponible ici : http://svnbook.red-bean.com/.
Ce chapitre est une introduction courte, occasionnelle à Subversion. Si le contrôle de version est nouveau pour vous, ce chapitre est certainement pour vous. Nous commençons par une discussion sur les concepts généraux du contrôle de version, nous ferons notre chemin vers les idées spécifiques derrière Subversion et nous montrons quelques exemples simples de Subversion en utilisation.
Bien que les exemples dans ce chapitre montrent des gens partageant des collections de code source de programme, gardez à l'esprit que Subversion peut gérer n'importe quel sorte de collection de fichier - il n'est pas limité à l'aide de programmeurs.
Subversion est un système centralisé pour partager l'information. Son coeur est un référentiel, qui est un dépôt central de données. Le référentiel stocke l'information sous forme d'une arborescence de système de fichiers - une hiérarchie typique de fichiers et de répertoires. N'importe quel nombre de clients se connecte au référentiel et ensuite lit ou écrit ces fichiers. En écrivant des données, un client rend l'information disponible aux autres ; en lisant des données, le client reçoit l'information des autres.
Alors pourquoi est-ce si intéressant ? Jusqu'ici, cela ressemble à la définition d'un serveur de fichiers typique. Et en effet, le référentiel est une sorte de serveur de fichiers, mais il n'est pas de votre genre habituel. Ce qui rend le référentiel de Subversion spécial est qu'il se rappelle de chaque changement jamais écrit : chaque changement de chaque fichier, et même les changements de l'arborescence des répertoires elle-même, comme l'ajout, la suppression et le réarrangement des fichiers et des répertoires.
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.