La première étape consiste à initialiser un espace de travail
(répertoire) contenant une copie de la partie du repository (branche)
Etudiants correspondant à votre binome (vide au départ) et à
y ajouter les fichiers produits au cours de la séance précédente.
Se mettre dans le répertoire Projet (le répertoire contenant
le travail de la dernière séance).
Faire un checkout de la branche correspondant à votre binome dans votre
répertoire Projet (attention au '.' à la fin de la commande,
remplacer ipn<x> par votre nom de binome, taper 'p' à la question sur le certificat) :
svn co https://svn.lal.in2p3.fr/projects/Etudiants/ipn<x> .
Indiquer les fichiers à ajouter au repository (les fichiers produits au cours de la séance précédente) :
svn add *
Vérifier l'état de l'espace de travail :
svn status
Supprimer de la liste des fichiers qui seront ajoutés dans le
repository, les fichiers inutiles et n'ayant pas besoin d'être
versionné (ceux générés par
compilateur par exemple):
copie temporaire,
fichier de backup,
fichier executable,
...
Les fichiers ne seront pas détruits, ils seront simplement
retirés de la liste des fichiers rajoutés au repository :
svn revert che/min/vers/image
...
Enregistrer les modifications dans le repository, avec un message
résumant les modifications (pas de caracteres accentues).
Attention: votre nom (login) sur le serveur SVN au LAL
est ipn<x> ; il est alors different de votre login sur la machine Linux
a l'IPN. Le password est celui qui vous a été indiqué
pendant la présentation :
svn ci -m "Importation des fichiers de la premiere sceance"
Dans cette étape, il est proposé de modifier un ou plusieurs fichiers et de les enregistrer dans le repository. On utilisera successivement les commandes cp et rm traditionnelles et leurs équivalents SVN pour comparer les différences. L'opération peut être répétée plusieurs fois pour enrichir l'historique en vue de l'étape suivante.
Modifier un fichier existant (bonjour.cxx), ajouter une ligne de commentaire, vérifier l'effet et enregistrer la modification dans le repository :
editer bonjour.cxx
svn status
M bonjour.cxx
svn ci -m "Premiere modification de bonjour"
Copier un fichier existant (sans utiliser svn cp), vérifier l'effet et enregistrer la modification dans le repository :
cp bonjour.cxx HelloWorld.cxx
svn status
? HelloWorld.cxx
svn add HelloWorld.cxx
svn ci -m "Ajout de HelloWorld"
Supprimer le fichier ajouté précédemment (sans utiliser svn rm), vérifier l'effet et enregistrer la modification dans le repository :
rm HelloWorld.cxx
svn status
! HelloWorld.cxx
svn rm --force HelloWorld.cxx
svn ci -m "Suppression de HelloWorld"
Copier un fichier existant (en utilisant svn cp), comparer l'effet et enregistrer la modification dans le repository :
svn cp bonjour.cxx HelloWorld.cxx
svn status
A + HelloWorld.cxx
svn ci -m "Ajout de HelloWorld"
Supprimer le fichier ajouté précédemment (en utilisant svn rm), comparer l'effet et enregistrer la modification dans le repository :
svn rm HelloWorld.cxx
svn status
D HelloWorld.cxx
svn ci -m "Suppression de HelloWorld"
Durant cette étape, on va expérimenter deux utilisations de l'historique des versions stockées dans le repository : la visualisation des différences entre versions et le retour à une version antérieure.
Il est proposé 2 utilisations de la capacité à afficher les différences : entre l'espace de travail et le repository ; entre 2 versions du repository.
Afficher les différences entre l'espace de travail et la dernière version du repository :
Modifier le fichier bonjour.cxx (ajouter un commentaire)
svn diff bonjour.cxx
Afficher les différences entre l'espace de travail et une révision arbitraire du repository. Comparer avec le résultat précédent :
Sélectionner une révision n dans l'historique.
svn diff -r n bonjour.cxx
Afficher les différences entre 2 révisions m et n du repository sélectionnées dans l'historique (la dernière révision s'appelle toujours HEAD). Le fichier bonjour doit exister dans les 2 (vérifier l'effet si ce n'est pas le cas)
svn diff -r m:n bonjour.cxx
Répéter l'action précédente en utilisant l'interface Web WebSVN. Pour cela se connecter à l'URL https://svn.lal.in2p3.fr/WebSVN/Etudiants et naviguer jusqu'au fichier bonjour.cxx de votre branche. Utiliser le bouton 'Revision Log', sélectionner 2 révisions et cliquer sur le bouton 'View Changes'.
L'intérêt de conserver un historique des révisions est aussi de pouvoir revenir à une version antérieure d'un fichier.
Annuler les modifications de l'espace de travail et revenir à la version de la dernière révision du repository :
svn status
Vérifier que bonjour a été modifié
svn revert bonjour.cxx
Annuler les modifications de l'espace de travail et revenir à la version d'une révision n quelconque du repository :
svn revert bonjour.cxx
svn merge -r HEAD:n bonjour.cxx
svn status
svn ci -m "Retour a la version n de bonjour"
Revenir à la version d'une révision n quelconque du repository, en préservant les modifications locales :
Modifier le fichier bonjour.cxx (ajouter un commentaire)
svn merge -r HEAD:n bonjour.cxx
svn status
Vérifier les conflits et, le cas échéant, les résoudre
svn resolved bonjour.cxx
svn ci -m "Update a partir de la version n de bonjour"
Contact: ens@ipno.in2p3.fr
Last modified: Tue Jul 18 10:14:08 CEST 2006