Configuration et utilisation de subversion

lundi 8 mars 2010
par  Franck Pérignon

Etapes préliminaires

Ces étapes ne sont nécessaires que lors de la première utilisation de ssh et svn.

1- installer subversion si nécessaire

Par exemple sous Debian/Ubuntu :

aptitude install subversion

2- créer une clé ssh, en local, sur sa propre machine :

ssh-keygen

accepter les options par défaut et entrer une passphrase, qui sera demandée à chaque connection ssh/svn.
Résultat : un fichier id_rsa.pub (ou id_dsa.pub) est crée dans le répertoire .ssh de votre homedir.

3- déposer sa clé sur la forge :

Ma page -> Gestion du compte -> éditer les clés

PNG - 23 ko
PNG - 6.5 ko

Copier le contenu du fichier id_rsa.pub dans la fenêtre affichée puis cliquer sur "mettre à jour".

PNG - 40.4 ko

La mise à jour sera effective dans l’heure qui suit.

Attention : ne pas rajouter de tab, espace ou autre !!!

Utilisation de svn

1- Récupération du dépôt :

Sur la ljkforge, voir l’onglet SCM ou Sources du projet

svn checkout svn+ssh://nom-du-developpeur@scm.ljkforge.imag.fr/svn/nom_unix_du_projet

Le répertoire nom_unix_du_projet est copié à l’endroit ou la commande a été lancée. nom-du-developpeur correspond à votre login sur la ljkforge.

2- Autres commandes utiles

svn up : mise à jour de votre copie locale du dépôt.

svn commit : transfert de vos modifications locales vers la version de référence. L’option "-m" permet d’ajouter un commentaire (voir exemple plus bas).

svn status  : liste l’état des fichiers et répertoires de votre copie locale (relativement à la version du dépôt) (option -q : liste uniquement les fichiers versionnés)

svn add nom : ajoute "nom" (fichier ou répertoire) dans le dépôt (validé au prochain commit). Attention : si nom est un répertoire, tout ce qu’il contient sera également ajouté au prochain commit.

svn delete nom : supprime nom du dépôt (validé au prochain commit)

svn diff [nom] : comparaison de votre version locale avec celle du dépôt. Si nom est spécifié compare uniquement le fichier ou le répertoire nom.

svn help item : fournit l’aide pour item

Remarque : pour toutes les commandes qui effectuent une comparaison entre la version locale et celle du dépôt, l’option "-r num" permet de se rapporter à la version num.
Exemple : je souhaite comparer ma version locale du fichier monfic.txt à celle de la version 1 du dépôt :

svn diff -r 1 monfic.txt

Pour l’aide complète voir la documentation en ligne de subversion : http://svnbook.red-bean.com/ .

3- Un petit exemple ...

Je suis le développeur user_ljk et je veux récupérer puis travailler sur le projet projet_ljk.

création d’un répertoire de travail et récupération du dépôt

mkdir tmp
cd tmp
svn checkout svn+ssh://user_ljk@scm.ljkforge.imag.fr/svn/projet_ljk

On suppose que le répertoire projet_ljk contenait déjà un répertoire rep1 et un fichier fic0.txt
Ensuite je veux ajouter le fichier fic1.txt dans le dépôt :

cd projet_ljk
... création et remplissage de fic1.txt ...
svn add fic1.txt

Puis je modifie fic0.txt avec un éditeur quelconque. Si par ailleurs quelqu’un travaille également sur le projet et ajoute un fichier fic2.txt dans rep1, la commande svn status donne :

A fic1.txt
M fic0.txt
A rep1/fic2.txt

A pour ajouté et M pour modifié.
Ensuite je rapatrie les dernières modifications sur le dépôt :

svn update

maintenant status donne :

svn status
A fic1.txt

Il faut donc valider les dernières modifications locales :

svn commit -m "Ajout de fic1.txt"


Navigation

Articles de la rubrique