Chapitre 2. Concepts de base du contrôle de version

Table des matières

Le Dépôt
Modèles de gestion de version
Le problème du partage de fichier
La solution Verrouiller-Modifier-Déverrouiller
La solution Copier-Modifier-Fusionner
Que fait Subversion ?
Subversion en action
Copies de travail
URL de dépôt
Révisions
Comment les copies de travail suivent le dépôt
Résumé

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.

Le Dépôt

Subversion est un système centralisé pour partager l'information. Son coeur est un dépôt, qui est un dépôt central de données. Le dépôt 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 dépôt 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.

Figure 2.1. Un système Client/Serveur typique

Un système Client/Serveur typique

Alors pourquoi est-ce si intéressant ? Jusqu'ici, cela ressemble à la définition d'un serveur de fichiers typique. Et en effet, le dépôt est une sorte de serveur de fichiers, mais il n'est pas de votre genre habituel. Ce qui rend le dépôt 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 dépôt, il voit normalement seulement la dernière version de l'arborescence des fichiers. Mais le client peut aussi voir les états précédents du système de fichiers. 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 cœur 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.