Developpez.com

Une très vaste base de connaissances en informatique avec
plus de 100 FAQ et 10 000 réponses à vos questions

Installation de Subversion sous Debian


précédentsommairesuivant

Qu'est-ce que subversion ?

Qu'est-ce qu'un VCS ?

Subversion est un VCS, Version Control System, ou logiciel de gestion de version. C'est un logiciel qui permet à plusieurs développeurs de travailler sur un même projet, voir sur un même fichier simultanément.
Il est responsable de la gestion des accès concurrents, ou plus exactement des modifications concurrentes sur un même fichier. De plus si les modifications ne sont pas conflictuelles, Subversion assure la fusion de celles-ci afin d'avoir au final une version du projet qui comprend toutes les modifications.

Dans les cas où les modifications portent sur les même lignes, Subversion aura besoin d'une intervention d'un utilisateur afin de résoudre manuellement ces conflits.

Pourquoi Subversion ?

Subversion a été développé dans le but de remplacer à terme CVS en comblant quelques lacunes inérantes à ce dernier :

  • Atomicité
  • Gestion du renommage / déplacement
  • Gestion des révisions
  • Gestion des accès

Atomicité

Dans CVS les modifications envoyées par un développpeur étaient intégrées dans le dépôt une par une dès leur réception. Si pour une raison ou l'autre, l'envoi de ces modifications était intérrompu ( problème réseau, plantage du système d'exploitation du coté client, ... ), les modifications déjà reçues étaient été intégrées.
Dans ce cas précis, le dépôt est dans un état incohérent, et le projet n'est plus forcément compilable.

Afin d'éviter cela, Subversion intégre les modifications uniquement lorsque toutes celles-ci ont été reçues intégralement et qu'aucun problème n'est survenu.
Le cas échéant, aucune modification n'aura été intégrée, et le développeur devra faire une autre tentative, après résolution des problèmes éventuels.

Ce système d'intégration est comparable au système de transactions des bases de données commit/rollback.

Gestion des déplacements / renommages

Une autre faiblesse de CVS est la gestion, ou plus exactement l'absence de gestion, du renommage/déplacement des fichiers. En effet, CVS perçoit ces actions commme la suppression du fichier source, et la création du fichier destination. Ce qui a pour conséquence que l'historique du fichier original n'est pas lié au nouveau fichier.

Dans Subversion, si un fichier est déplacé ou renommé à l'aide de la commande svn move, l'historique reste associé au fichier destination, ce qui permet de voir toutes ses modifications depuis le début.

Attention, si le déplacement n'est pas fait avec la commande svn, l'historique sera perdu de la même manière que dans CVS.

Gestion des répertoires

Un autre avantage de Subversion est sa gestion des répertoires. Pour chaque révision, une liste des fichiers contenus dans un répertoire est gardé.
Cela a pour avantage de pouvoir comparer le contenu d'un répertoire par rapport à une ancienne version rapidement.

Révisions

La notion des révisions entre Subversion et CVS est différente. Dans ce dernier une révision était associée à un fichier en particulier.

Cela peut paraître logique, mais cela pose un problème : Comment récupérer une copie du dépôt à un moment donné ? Un fichier pouvant être à la révision 3, tandis qu'un autre à la révision 10, et un plus récent à la révision 1.

Dans Subversion, la notion de version est appliquée sur l'ensemble du dépôt. Dès qu'une modification est apportée à un fichier dans le dépôt, c'est l'ensemble des données qui passe au numéro de révision suivant.

Il est dès lors plus simple de retrouver l'état d'un dépôt à un moment donnée, en gardant une trace de la révision à ce moment là.

Gestion des accès

Comme il sera démontré plus loin dans cet article, la gestion des accès peut être très fine, spécialement lorsque Subversion est lié à Apache.
Il est dès lors possible de spécifier différents accès par utilisateur, par groupe, et ce, pour chaque fichier/répertoire dans le dépôt, et non pas un accès global à celui-ci.


précédentsommairesuivant

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.