490 likes | 612 Views
Problèmes…. Vous tentez de fusionner des versions trop divergentes?. Vous avez oublié une partie des sources à la maison?. Vous êtes perdu dans vos multiples versions?. Vous avez oublié de faire un copie de sécurité?. Un Système de Gestion des Sources!. SGS. La solution….
E N D
Problèmes… Vous tentez de fusionner des versions trop divergentes? Vous avez oublié une partie des sources à la maison? Vous êtes perdu dans vos multiples versions? Vous avez oublié de faire un copie de sécurité? Un système de gestion des sources
Un Système de Gestion des Sources! SGS La solution… Un système de gestion des sources
Objectifs d’un SGS • Gérer les problèmes d’accès concurrents aux sources. • Conserver une trace des modifications. • Récupérer facilement les sources des versions précédentes. • Assurer l’itinérance du programmeur. • Faciliter les copies de sauvegarde. Un système de gestion des sources
Structure d’un SGS C’est un système client-serveur. Toutes les sources et leurs versions sont conservées sur le serveur. Le client demande une version des sources et le droit d’en modifier une partie. Un système de gestion des sources
Le paradigme Check-out / Edit / Check-in • Récupérer la dernière version d’un fichier. • Réserver le fichier en mode exclusif (« checkout »). • Modification locale du fichier (« Edit »). • Sauvegarde des modifications (« check-in »). + Sécurité - Flexibilité Un système de gestion des sources
Le paradigme Edit / Merge / Commit • Modification locale du fichier (« Edit »). • Si le fichier a été modifié entre temps : • Fusion des versions (« Merge »). • Sauvegarde des modifications (« Commit »). + Flexibilité - Sécurité Un système de gestion des sources
Microsoft SourceSafe • Utilise le paradigme Check-out / Edit / Check-in. • $$$ ! • Peu de support multi-plateformes. • Simple d’utilisation. Un système de gestion des sources
Subversion • Utilise le paradigme Edit / Merge / Commit. • Gratuit. • Support multi-plateformes. • Utilisation plus complexe ? Un système de gestion des sources
Installation de Subversion • Serveurs: • Site Web: http://subversion.apache.org/ • Version courante: 1.6.12. • Plateformes: Windows, Red Hat, Ubuntu, Fedora, Debian, FreeBSD, openBSD, Solaris, Mac OS X, etc. • Clients: • SmartSVN (nécessite JRE 1.4.1). • Site Web: www.syntevo.com/smartsvn. • Version courante: 6.6.2. • Plateformes: Windows, Mac OS X, Linux, Unix, OS/2. • TortoiseSVN. • VisualSVN, Etc. Un système de gestion des sources
Exemple pour la présentation: C’est du gâteau! Inspiré du projet de Louise et Michel Un système de gestion des sources
Effacer les dossiers et fichiers temporaires Dossiers Bin, Obj, Debug, Release Seuls les sources et les ressources doivent être déposés dans un SGS, pas les binaires! Fichiers suo, user, ncb Un système de gestion des sources
Se connecter au dépôt Louise au travail... Michel à la maison... Un système de gestion des sources
Créer un profil Un système de gestion des sources
Choisir le protocole, le serveur et le dépôt Protocole Serveur Dépôt Un système de gestion des sources
Entrer le nom et le mot de passe Nom d’usager Subversion Mot de passe Un système de gestion des sources
Entrer le nom du profil De façon optionnelle, on peut donner un nom local au profil Description du module Un système de gestion des sources
Créer un projet à partir de sources locales Louise au travail... Un système de gestion des sources
Créer un projet Chemin d’accès au dossier Un système de gestion des sources
Choisir le profil Un système de gestion des sources
Créer un dossier dans le dépôt Un système de gestion des sources
Structure recommandée des dossiers dans le dépôt • Projet 1 • Trunk : Version courante • Sources • Documentations • Branches : Versions divergentes • Tags: Versions relâchées • Projet 2 • Outils communs Un système de gestion des sources
Donner un nom au projet Un système de gestion des sources
Confirmation Un système de gestion des sources
Ajouter les fichiers au dépôt Un système de gestion des sources
Enregistrer les changements (« commit ») Un système de gestion des sources
Récupérer un projet Michel à la maison... Un système de gestion des sources
Récupérer un projet (« checkout ») Choisir le profil Un système de gestion des sources
Choisir le dossier du dépôt Un système de gestion des sources
Choisir le dossier local Un système de gestion des sources
Choisir le nom du projet local Un système de gestion des sources
Confirmation Un système de gestion des sources
Enregistrer une modification Michel à la maison... Un système de gestion des sources
Modifications de Michel • Main.cpp: • CestDuGateau.h: Un système de gestion des sources
Modifications de Michel (suite) « commit » État local Un système de gestion des sources
Confirmation et message IMPORTANT! Un système de gestion des sources
Récupérer la dernière version Louise au travail... Un système de gestion des sources
Récupérer les modifications Dossier Un système de gestion des sources
Résolution de conflits Un système de gestion des sources
Modifications à CestDugateau.h Louise Michel Un système de gestion des sources
Résultat: Conflit !!! Michel doit récupérer la dernière version du fichier CestDuGateau.h Un système de gestion des sources
Utiliser l’outil de résolution de conflits • Pour chaque conflit, il faut choisir entre le bloc local (Michel) ou le bloc du dépôt (Louise) Bloc Du Dépôt (Louise) Bloc Local (Michel) Bloc courant Un système de gestion des sources
Enregistrer les modifications Un système de gestion des sources
Des outils pratiques Un système de gestion des sources
Le journal Pour chaque révision, on peut visualiser: • la date et l’heure de la modification, • l’auteur de la modification, • le message associé, • le contenu du fichier, etc. Un système de gestion des sources
La vue annotée Pour chacune des lignes d’un fichier, on peut visualiser: • la dernière révision qui a modifié cette ligne, • l’auteur de la modification, • la date et l’heure de la modification. Un système de gestion des sources
Les différences On peut visualiser les différences entre deux révisions ou entre la version locale et la version du dépôt Un système de gestion des sources
La fenêtre des transactions Chacune des modifications apportées au dépôt sont affichées dans la fenêtre des transactions. Vues Un système de gestion des sources
À ne pas oublier... • Le SGS est indispensable à tout projet sérieux mais n’est pas la solution miracle à tous les problèmes! • Vérifier que le projet compile et fonctionne avant d’enregistrer les modifications. • Récupérer souvent les dernières modifications. • Faire de petites modifications à la fois! • Bien diviser le travail entre programmeurs pour éviter les conflits. Un système de gestion des sources
Informations utiles • Nom du serveur: hercule.clg.qc.ca • Noms des dépôts: • Noms d’usagers: • Votre prénom en minuscule, pas de trait d’union ou d’espace, maximum 8 lettres. • Mot de passe : • Votre numéro d’admission, contactez-moi si vous voulez le modifier! Un système de gestion des sources