Recherche


imprimer pdf

SVN sur Mutu


DESCRIPTIF

Subversion (en abrégé svn) est un système de gestion de versions. Ce guide montre la façon d'utiliser svn via l'accès ssh de l'hébergement grâce aux clés publique/privée. (il faut donc bien sûr disposé d'un accès ssh à l'hébergement) La suite du guide suppose que vous êtes connecté en ssh à la racine de votre hébergement.

PRE-REQUIS


  • Avoir un hébergement qui permet une connection ssh
  • Savoir se connecter en SSH

CREATION DU DEPOT

Une fois connecté en SSH sur votre hébergement, il vous faut créer le répertoire racine des dépôts svn et ensuite le dépôt.
Il vous suffit pour cela de taper la commande:

mkdir svn
et
svnadmin create svn/depot_test

Vous pouvez ensuite vérifier que les repertoires ont été crées avec la commande:
ls -la

Vous devez obtenir les repertoires comme indiqué sur l'image ci-dessous:

CREATION DES CLES PUBLIQUES/PRIVEES (Linux avec openssh)

Cette partie se déroule sur l'ordinateur qui se connectera au dépôt svn (le client svn). Il faut créer une paire de clé dsa. Pour cela taper dans votre terminal la commande:
ssh-keygen -t dsa
et récupérer la ligne qui se trouve par défault dans le fichier .ssh/id_dsa.pub . Pour editer le fichier il vous suffit d'utiliser la commande: vi.
vi .ssh/id_dsa.pub
Vous trouverez la clef qui est divisée en trois chaînes de caractères : le type, la clé et un commentaire.

CREATION DES CLES PUBLIQUES/PRIVEES (Windows avec putty)

Cette partie se déroule sur l'ordinateur qui se connectera au dépôt svn (le client svn).
Télécharger l'installer windows putty et l'installer. ( http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.60-installer.exe )
Il faut créer une paire de clés dsa. Pour cela lancer PuTTYGen, générer une paire de clé et les sauvegarder :

AJOUT DE LA CLE PUBLIQUE SUR L'HEBERGEMENT

Aprés avoir obtenu votre clef il vous faut l'ajouter sur votre hebergement dans le fichier .ssh/authorized_keys2. Il vous suffit pour cela de taper la ligne de commande ci-dessous:
mkdir .ssh
chmod 700 .ssh
vi .ssh/authorized_keys2
Une fois le fichier ouvert vous devez y inserer la ligne suivante:
command="/usr/bin/svnserve --root=/homez.XXX/loginFTP/svn --tunnel --tunnel-user=marc",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty
suivi de la clé précédemment créée, le tout sur la même ligne !

NB : Remplacer "/home.XXX/loginFTP" et "marc" par ce qu'il convient !
Pour connaître les chiffres à utiliser pour remplacer /home.XXX/loginFTP" vous pouvez tout simplement taper la commande "pwd" en ssh

La personne pourra donc récupérer le contenu du dépôt sans pouvoir pour autant se connecter directement en ssh sur la machine.
Attention, une même clé ne doit pas être utilisée pour svn et pour ssh en ligne de commande


EXEMPLE (Linux)


Vous pouvez faire un test depuis l'ordinateur se connectant au depot svn en tapant la ligne:
svn checkout svn+ssh://loginFTP@clusterXXX/depot_test


EXEMPLE (Windows avec TortoiseSVN)

Télécharger tortoisesvn et l'installer (http://tortoisesvn.net/downloads)
Double cliquer sur la clé privée. Une icône apparait en bas à droite, la clé est alors chargée dans l'agent d'authentification :
Créer un répertoire, cliquer droit dessus et sélectionner "SVN Checkout". Entrer
svn+ssh://loginFTP@clusterXXX/depot_test
dans le champ "URL of repository" et cliquer sur OK :



Il existe une très bonne documentation en anglais pour Subversion : http://svnbook.red-bean.com/en/1.5/index.html



Cas spécifiques


Créer plusieurs Comptes

Il faut tout d'abord avoir créer plusieurs clés ssh.
Ensuite lors de l'ajout de la clé publique sur l hebergement:
command="/usr/bin/svnserve --root=/home.XXX/loginFTP/svn --tunnel --tunnel-user=marc",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty


Vous devez modifier le paramètre ci-dessous en y ajoutant vos différents utilisateurs:
--tunnel-user


à noter qu'il est aussi possible de donner des accès en lecteur seule en ajoutant le paramètre:
--read-only.

Check en local depuis le serveur

lorsque vous voudrez faire le checkout en local, les exemples fournis ne fonctionneront pas.
Il vous faudra utiliser :

svn+ssh://login@ftp.nom-du-site.tld/home.XXX/login/svn/depot_test