#liste_articles {display:block}

Utiliser SubVersion - gestionnaire de versions

mercredi 14 novembre 2007

 

Utiliser SubVersion - gestionnaire de versions

Serveur + Client en local
Ubuntu 7.10

Presentation

Subversion (svn) est un système de gestion de versions multiplateforme, permettant notamment de maintenir le développement d’un code source et sa documentation ou, au sens large, d’un projet collaboratif (logiciel, site Internet, documents, ect).

Il s’appuie sur le principe d’un dépôt unique et central qui garde en mémoire toutes les versions qui ont été validées (comitées) depuis les versions locales clientes. On peut ainsi revenir rapidement en arrière, ou déterminer les différences entre deux arborescences quelconques.

Subversion est distribué sous licence Apache et BSD, s’intalle sur le serveur avec Apache (les communications avec les clients se font la plupart du temps avec WebDav) et est souvent complété de Trac pour la gestion des sites Web.

Au niveau client, on peut facilement interfacer subversion avec les explorateurs de fichiers :

  • KdeSVN (KDE - Linux)
  • Nautilus-script-collection-svn (Gnome - Linux)
  • TortoiseSVN (Windows)

Le tutorial suivant propose l’installation de la partie serveur et cliente SVN en locale sous Ubuntu 7.10 - Gnome.

Ce système me sert par exemple pour maintenir à jour un site générique déployé (et développé) à plusieurs endroits dans /var/www.

Serveur

Installer les paquets

sudo apt-get install subversion libapache2-svn

Créer un projet dans le dépôt central (répertoire svn), attribuer les droits d’écriture apache et lancer le serveur

svnadmin create /chemin/svn/mon_projet

sudo chown -R www-data:www-data /chemin/svn/

svnserve -d -r /chemin/svn/

Configurer Apache pour l’accès Webdav au dépôt central

sudo gedit /etc/apache2/mods-available/dav_svn.conf

Ajouter :

<Location /svn>
  DAV svn
  SVNParentPath /chemin/svn
</Location>

Redémarrer apache :

sudo /etc/init.d/apache2 restart

Le dépôt (vide) doit être visible via l’interface web :
http://localhost/svn/mon_projet

Client

Au niveau du client, il suffit d’installer l’extension pour nautilus :

sudo apt-get install nautilus-script-collection-svn

nautilus-script-manager enable Subversion

accessible en navigation contextuelle (clic droit > script).

Premiere mise à jour

1. Monter sur le serveur le projet en version 1 avec un svn import en ligne de commande, car la commande n’est pas accessible dans nautilus :

svn import [CHEMIN] URL_DU_DEPOT

cd /chemin_local/mon_projet_v1
svn import http://localhost/svn/mon_projet

2. Descendre une copie locale du projet v1 dans l’emplacement de travail local avec checkout , accessible depuis nautilus : clic droit dans nautilus > Scripts > Subversion > More > Checkout

Entrer l’adresse du dépôt central, les fichiers sont copiés localement et un dossier caché .svn est créé dans le répertoire de travail.

Dans mon cas je répète l’opération sur chaque site concerné par le dépôt :

  • /home/pvincent/Programmation/www/site1
  • /home/pvincent/Programmation/www/site2
  • /home/pvincent/Programmation/www/site3
  • ...

Note : il n’y a pas de restriction à travailler avec plusieurs dépôts centraux sur la même machine qu’ils soient locaux ou distants étant donné que la configuration de mise à jour stockée dans .svn est propre à chaque répertoire de travail.

3. Travailler dans le(s) répertoire(s) de travail avec les commandes contextuelles add (ajout de dossiers ou de fichiers), delete (suppression de dossiers ou de fichiers), commit (envoi sur le serveur) dans la navigation de Nautilus

4. La version centrale du dépôt est maintenue et peut être mise à jour sur chaque répertoire de travail avec update, toujours dans Nautilus


Pour aller plus loin

Note : le principe est le même lorsqu’on travaille à plusieurs sur un projet central, à la gestion des droits d’accès prêt.

par Patrick Vincent