wiki:InsiaAdminSysSvn

Version 2 (modified by Vincent Caron, 14 years ago) (diff)

--

Sommaire

Administration système - Subversion

1. Introduction

Subversion est un sytème de contrôle de version centralisé. Il a été conçu comme successeur du vénérable CVS, comme une solution plus robuste et exensible.

Un système de contrôle de version vise plusieurs objectifs:

  • permettre la collaboration entre plusieurs utilisateurs sur un projet (fichiers) commun(s)
  • permettre la maintenance smultanée de différentes versions d'un même projet
  • tracer et enregistrer l'historique de toutes les modifications effectuées
  • consulter les informations historiques, effectuer des comparaisons dans le temps

Il existe de nombreux systèmes de contrôles de version comparables, comme notamment Perforce (propriétaire).

A noter qu'il existe une famille nombreuse de système de contrôle de version dit distribuées, où il n'y a pas de distinction explicite client/server: GIT, Bazaar, Mercurial, Arch, Svk, Monotone, etc.

2. Notions fondamentales

Repository

Subversion utilisant un modèle centralisé, on peut donc désigner un serveur dont le rôle va d'être héberger un repository (dépôt). Chaque dépôt est associé avec sa méthode d'accès, ses utilisateurs, ses droits particuliers. On peut créer plusieurs dépôts distincts pour isoler des projets.

Un repository contient en particulier les données du projet et toutes ses informations historiques. Avec Subversion, la taille du repository est donc en constante augmentation. Cette augmentation est liée à la quantité de modifications apportées (et leur nature).

Serveur

Il existe plusieurs types de modèle serveur pour publier un repository. Il est en particulier en possible de s'en passer quand le client et le serveur sont sur la même machine, Subversion pouvant se contenter d'accès direct aux fichiers. Nous verrons que les autres modèles s'appellent svnserve, ssh et WebDAV.

Utilisateurs

Bien que la notion d'utilisateur soit facultative (on peut imaginer un