Table of Contents
Ce chapitre est une courte et rapide introduction à Subversion. Si le contrôle de version est un concept nouveau pour vous, ce chapitre vous est destiné. Nous commencerons par une présentation de ce type de systèmes en général, ainsi que les concepts qui en découlent, puis nous décrirons plus précisément les spécificités et idées dont est issu le système Subversion, et pour terminer, nous montrerons quelques exemples simples en application avec Subversion.
Bien que les exemples de ce chapitre montrent des personnes qui partagent une collection de code source de programme, il faut garder à l'esprit que Subversion peut gérer n'importe quel type de fichier ; il serait faux de penser qu'il ne peut être utile qu'à des développeurs.
Subversion est un système centralisé pour partager de l'information. Le point central est le dépôt, qui est le lieu où seront stockées les données. Le dépôt enregistre les informations sous la forme d'une arborescence dans le système de fichiers, hiérarchisée par des fichiers et des répertoires. Un nombre quelconque de clients peut se connecter au dépôt, et ensuite lire ou écrire ces fichiers. Par l'écriture de données ou de fichiers, un client rend disponible ces informations aux autres ; par la lecture des données, un client reçoit des informations des autres. La Figure 2.1, “Un système classique orienté client/serveur” illustre ces concepts.
Et alors, en quoi est-ce si intéressant ? Cela ressemble à la définition classique d'un serveur de fichiers partagés. Et avec raison, un dépôt est une sorte de serveur de fichiers partagés, mais ce n'est pas son utilisation habituelle, et pas celle qui nous intéresse ici. Ce qui rend le dépôt de Subversion si spécial, c'est qu'il se souvient de tous les changements effectués lorsqu'on écrit une nouvelle information : tous les changements sur tous les fichiers, et aussi tous les changements sur l'arborescence même des répertoires, comme la suppression et l'ajout, et le déplacement des fichiers et des répertoires.
Lorsqu'un client lit des données depuis un dépôt, il ne voit normalement que la dernière version de l'arborescence. Mais il a aussi la possibilité de voir les précédentes versions de l'arborescence. Par exemple, un client peut effectuer des requêtes sur l'historique, comme “Que contenait le dépôt mercredi dernier” ou “Qui est la dernière personne à avoir changé ce fichier, et quel changement a-t-elle effectué.” Ce type de questions est au cœur de n'importe quel système de contrôle de version : des systèmes étudiés pour enregistrer et suivre tous les changements effectués sur des données dans le temps.