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.
Quand un client lit des données du référentiel, il voit normalement seulement la dernière version de l'arborescence. Mais le client peut aussi voir les états précédents. Par exemple, un client peut poser des questions historiques comme, « que contenait ce répertoire mercredi dernier ? », ou « qui sont les dernières personnes à avoir changé ce fichier et quels changements ont-elles fait ? » C'est ce genre de questions qui sont au coeur de n'importe quel système de contrôle de version : des systèmes qui sont conçus pour enregistrer et suivre les changements des données au cours du temps.