Voici un petit tutoriel portant sur l'utilisation de SVN dans notre équipe. Il se décompose en plusieurs étapes.
J'ai écrit des scripts qu'il n'y aura qu'a exécuter pour que tout
marche. Ce sont des scripts écrits à la va-vite. N'hésitez pas à me
contacter s'il y a un problème.
Si vous devez taper un mot de passe à chaque fois pour vous connecter à
mimosa, svn risque de devenir assez vite pénible. C'est pourquoi il vaut
mieux créer un système qui permet de ne plus taper votre mot de passe.
En pratique c'est même plus sûr d'utiliser cette méthode.
Cette étape n'est bien entendue pas nécessaire, mais conseillée.
Téléchargez le script en cliquant ici.
Il faut lancer ce script sur votre machine locale.
Il copie un fichier sur mimosa, aussi il vous demande de taper un mot
de passe. Le script a besoin que le répertoire $HOME/.ssh existe sur
mimosa.
#!/bin/bash # génération d'un couple de clef à utiliser avec ssh ssh-keygen -t rsa # si vous n'avez JAMAIS utilisé cette technique # vous pouvez utiliser cette commande qui détruira toutes # les anciennes versions. scp $HOME/.ssh/id_rsa.pub mimosa.univ-mrs.fr:.ssh/authorized_keys # Maintenant vous pouvez faire ssh sans taper votre mot de passe.
Attention, ce script détruit le fichier authorized_keys sur mimosa. Si c'est la première fois que vous faite cette manoeuvre, ça n'aura aucun effet, sinon, il faut ajouter votre clef publique à la suite :
scp $HOME/.ssh/id_rsa.pub mimosa.univ-mrs.fr -- tapez votre mot de passe -- ssh mimosa.univ-mrs.fr -- tapez encore votre mot de passe mimosa$ cat id_rsa.pub >> $HOME/.ssh/authorized_keys
mimosa$ logout ssh mimosa.univ-mrs.fr mimosa$ Youpi! plus de mot de passe !
Maintenant que vous ne tapez plus vos mot de passe pour vous connecter à
mimosa, on peut commencer à initialiser SVN proprement dit.
La façon la plus simple est de créer sur son compte un
répertoire accessible en lecture et en écriture au groupe bda.
Pour cela, utilisez le script suivant à utiliser sur mimosa.
Le script suivant est téléchargeable ici.
#! /bin/bash SVNROOT="$HOME/.svnroot" if [ $# -gt 1 ]; SVNROOT=$1 fi mkdir $SVNROOT svnadmin create $SVNROOT for i in `find $SVNROOT`;do chgrp bda $i chmod g=u $i done
Maintenant que vous avez initialiser le repository, il va falloir y mettre vos données. Vous avez déjà commencé à écrire votre projet (programme ou article). Il faut l'intégrer dans le repository avec la commande svn import Le script est téléchargeable ici. Avant de lancer ce script, il faut véfier plusieurs choses.
#!/bin/bash if [ $# -lt 2 ]; do echo "positionnez-vous dans le répertoire supérieur au répertoire" echo "contenant le projet, et donnez le nom du répertoire en paramètre" echo "si votre login est différent sur mimosa et sur votre ordinateur" echo "local, modifiez la valeur de la varaible LOGIN en conséquence" echo "dans le script" exit -1; done LOGIN=$USER projet=$1 mv $projet $projet.tmp mkdir $projet mkdir $projet/tags mkdir $projet/branches mkdir $projet/trunk cp -R $projet.tmp/* $projet/trunk/ ADRESSE=svn+ssh://mimosa.univ-mrs.fr/home/$LOGIN/.svnroot/projet svn import $projet -m "importation initiale" rm -Rf $projet echo "Maintenant pour télécharger le projet, lancez la commande" echo "svn checkout $ADRESSE/trunk $projet"
Maintenant le plus dur a été fait. Vous pouvez utiliser subversion. le script importeProjet précédent renvoie à la fin de l'opération une ligne qui écrit ce qu'il faut faire pour télécharger le projet à partir du repository. Lancez cette commande et donnez-la à toutes les personnes qui partagent votre projet. Cette commande crée un répertoire contenant le projet. Vérifiez que tout est correct. Supprimez l'ancien répertoire contenant votre projet. Vous ne travaillerez plus que dans le répertoire créé par SVN. Ce répertoire contient un répertoire caché supplémentaire nommé .svn qui contiendra des informations de gestions pour SVN.
Maintenant vous avez un répertoire dans lequel vous pouvez plus facilement modifier des fichiers en parallèle. Voici maintenant le cycle typique d'utilisation de svn :
d'autres commandes utiles (l'historique) :
Un mot sur la résolution de conflits. Lorsqu'un fichier (nommé fichier) est conflictuel, subversion va créer trois fichiers supplémentaires :
Voici comment se présente un fichier conflictuel après avoir lancé la commande svn update :
$ cat sandwich.txt Top piece of bread Mayonnaise Lettuce Tomato Provolone <<<<<<< .mine Salami Mortadella Prosciutto ======= Sauerkraut Grilled Chicken >>>>>>> .r2 Creole Mustard Bottom piece of breadOn peut alors l'éditer à la main comme ceci :
Top piece of bread Mayonnaise Lettuce Tomato Provolone Salami Mortadella Prosciutto Creole Mustard Bottom piece of bread
Remarque importante : pour éviter des problèmes de "faux" conflits, il ne faut pas utiliser l'option "wrap lines" dans emacs qui fait des retours automatiques à la ligne des paragraphes. En effet, si un des deux auteurs utilise des lignes de longueur 80 et l'autres des lignes de longueur 102 alors, tout le paragraphe semblera être modifié alors que la plupart du temps il s'agira de modifier simplement une ligne.
Voilà c'est fini. Si vous voulez mieux comprendre le fonctionnement de svn, il faut télécharger le livre svnbook.