Présentation PowerPoint - IGL601

Transcription

Présentation PowerPoint - IGL601
TRAVAUX DIRIGÉS
ATELIER SUBVERSION
IGL601/IGL711 TECHNIQUES ET OUTILS DE DÉVELOPPEMENT
18 SEPTEMBRE 2015
PAR
JONATHAN GUAY, ING. M.ING., DAA, PMP
DÉPARTEMENT D’INFORMATIQUE
UNIVERSITÉ DE SHERBROOKE
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
AGENDA
•
•
•
•
•
•
•
•
•
•
Introduction
Historique
subversion vs git
subversion vs Redmine
Redmine pour votre travail pratique
subversion pour votre travail pratique
Structure
Quelques commandes de bases
Exemple d’utilisation
Exercice
2
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
INTRODUCTION
• subversion appelé svn
• C’est quoi svn?
• svn est un outil de gestion des versions (sources) pour favoriser le travail collaboratif
des développeurs logiciels.
• Permet de sauver de l’espace disque
• Permet de gérer les modifications d’un fichier faites par 2 développeurs à la fois
• Permet de gérer plusieurs versions de notre logiciels
• Permet de comparer 2 versions de logiciels ou d’un fichier
3
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
HISTORIQUE
À l’origine: RCS (Revision Control System) (1980)
• ‘libre’ contrairement au système SCCS (Source Code Control System) (1972)
• Conserve les ‘deltas’ d’une version à l’autre
Puis est apparut CVS (Concurrent Versions System) (1990)
•
Gestion concurrente des versions
Enfin SVN
• Similaire à CVS mais amélioré
• On parle toujours de dépôts centralisé unique
De nos jours Git
• Logiciel de gestion de versions, décentralisé
• Développé par Linus Torvalds
4
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
SUBVERSION VS GIT
• La grande différence entre svn et git est que ce dernier utilise un dépôt décentralisé.
• Ce qui veut dire:
• Avec git, vous pouvez travailler hors connexions et continuer à gérer des versions locales
• Une fois connecter, vos changements sont ensuite transmis à git sur le serveur initial.
• git favorise le travaille décentralisé, particulièrement utilise pour le développement de
logiciels libre
• SVN est plus simple à apprendre et utiliser.
• Github.com a aidé à la popularité de git.
• Site web offrant une l’hébergement de vos versions à l’aide de git
• Gratuit pour les logiciels libres
• Payant pour les autres
5
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
SUBVERSION VS REDMINE
• Redmine permet simplement de visualiser le contenu de votre dépôt de version svn
• Liste des versions
• Commentaires de de chaque versions
• Permet de voir les différences entre les versions.
• Ne permet pas d’ajouter des fichiers à votre dépôt ou de créer des branches
6
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
SUBVERSION VS REDMINE (2)
7
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
REDMINE POUR VOTRE TRAVAIL PRATIQUE
• Accès des laboratoires ou via le RPV à l’aide de l’URL suivant:
• dinf-prj-35.dinf.fsci.usherbrooke.ca/redmine/
• Vous devrez accepter le certificat de sécurité non
authentifié
1) Vous devez d’abord vous inscrire sur Redmine en vous
établissant une connexion afin de créer votre utilisateur
Redmine (utilisez votre CIP).
2) L’administrateur (l’enseignant) vous assignera le rôle de
‘Manager’ pour le projet déjà créé pour votre équipe.
8
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
SUBVERSION POUR VOTRE TRAVAIL PRATIQUE
Endroit du dépôt svn:
dinf-prj-35.dinf.fsci.usherbrooke.ca/opt/redmine/depots/svn/equipeXsvn (remplacer X par votre
numéro d’équipe)
Exemple de connexion en ligne de commande pour effectuer un checkout
1) lorsque vous travailler dans le laboratoire:
svn co svn+ssh://[email protected]/opt/redmine/depots/svn/equipeXsvn (remplacer CIP et X)
equipeXsvn est le nom de votre dépôt svn. Habituellement, nous utilisons plutôt le nom du logiciel
développé comme nom de dépôt.
Notez que tous les étudiants du cours ont présentement accès en lecture et écriture à tous les dépôts.
Habituellement seules les personnes autorisées ont accès en lecture et seuls les développeurs du
projet on accès en écriture. Les étudiants qui ne respecteront pas la propriété intellectuelle des
9
autres équipes seront accusés de plagiat.
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
SUBVERSION - STRUCTURE
Par convention un dépôt SVN contient généralement la structure suivante:
trunk (développement le plus récent)
branches (contient les branches de développement)
tags (contient les ‘TAGs’ de vos versions officiels testés ‘releases’ (ex pour livraison))
pour créer vos répertoires utiliser la commnade svn mkdir
Exemple :
svn mkdir svn+ssh://[email protected]/opt/redmine/depots/svn/equipeXsvn/trunk
10
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
SUBVERSION – COMMANDES DE BASE
svnadmin create project_repo
svn checkout http://svn.server.com/svn/project_repo --username=tom
svn add array.c
svn commit -m "Initial commit"
svn log
svn diff
svn update
svn copy --revision=4 trunk/ tags/basic_array_operations
svn resolve --accept=working README
svn copy trunk branches/jerry_branch
svn merge http://svn.server.com/svn/project_repo
svn lock
svn help
Possibilité d’utiliser un client SVN comme TurtoiseSVN, RapidSVN ou Eclipse.
11
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
SUBVERSION – EXEMPLE D’UTILISATION
12
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
SUBVERSION – EXERCICE
Écrivez les commandes pour effectuer ce qui suit:
1) Créer un dépôt pour le logiciel TestLog2000
2) Créer la structure habituelle d’un dépôt SVN
3) Extraire les sources dans votre répertoire de travaille
4) Ajouter le fichier TestLogMain.cpp à votre tronc
5) Soumettre vos changements (commit)
6) Modifier le logiciel TestLogMain.cpp
7) Soumettre vos changements
8) Créer un tag TestLog2000_ReleaseAlpha pour votre logiciel
9) Créer une branche de développement pour votre collègue
10) Modifier TestLogMain.cpp dans votre branche de développement
11) Faite un ‘merge’ des changement de la branche de développement vers le tronc
13
Copyright 2015 Jonathan Guay, département d’informatique, université de Sherbrooke
DOCUMENTATION
• HTTP://WWW.USHERBROOKE.CA/INFORMATIQUE/INTRANET/RESSOURCES-ETDOCUMENTATION/LOGICIELS-SERVICES-OUTILS/GESTION-ET-ACCES-AUXSERVEURS-DE-RECHERCHE-ET-DE-PROJETS/
• HTTP://WWW.USHERBROOKE.CA/INFORMATIQUE/INTRANET/RESSOURCES-ETDOCUMENTATION/LOGICIELS-SERVICES-OUTILS/UTILISATION-DELENVIRONNEMENT-DE-GESTION-DE-PROJET-REDMINE/
• HTTP://WWW.USHERBROOKE.CA/INFORMATIQUE/INTRANET/RESSOURCES-ETDOCUMENTATION/LOGICIELS-SERVICES-OUTILS/GESTIONNAIRES-DEVERSIONS-SVNGITCVS/
14