Introduction à la gestion de configuration avec CVS

Slides:



Advertisements
Présentations similaires
Module 5 : Implémentation de l'impression
Advertisements

La Gestion de la Configuration
Architecture Technique de la plate-forme CASTORE
Etat d'avancement ORI-OAI Interaction avec les ENT.
VLC UMVF Fiche Veille Statut Logiciel gratuit, open source
Personnalisation des sites SharePoint avec SharePoint Designer 2007
Chapitre I : Systèmes d’exploitation
Dimensions et Java : Plug-in, Build et EAR Elisabeth BAUDOIN STIME CLUB UTILISATEURS ALMA DU 23 NOVEMBRE 2010.
Une solution personnalisable et extensible
Bienvenue dans le programme de formation rapide à NSIS Date : 20 novembre 2003 Intervenant : Julien VICTOR Interlocuteurs : Ingénieurs 2000 Informatique.
Concurrent Version System
Design Pattern MVC En PHP5.
Introduction aux CMS.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Concurrent Versions System
Subversion un logiciel libre de gestion de configuration
XML-Family Web Services Description Language W.S.D.L.
Module 1 : Préparation de l'administration d'un serveur
N. Le Gall A. Jaouën E. Morin C. Coelo Cuzon D. Le Toux
Atelier ADOMOCA Nov 2007 Hervé Le Berre Larborescence du projet Mocage.
Projet JAVA EE Approfondi
Citrix® Presentation Server 4.0 : Administration
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
Concurrent Versatile Versions
Module 4 : Maintenance des pilotes de périphériques
27 juin Formation à lutilisation dun client Subversion Vincent Carpier Florent Guilleux Paris, 27 Juin 2007.
Subversion.
Un outil de travail Collaboratif CVS IRD - Centre de Bretagne.
1 journée, 5 sessions, 1 réalisation.NET Enterprise Realization Day.
Démarche Qualité Logicielle
‘‘Open Data base Connectivity‘‘
Tour d’horizon des outils d’aide au développement Java
Test logiciel Xavier Baril.
De CVS à SVN Xavier Baril. (C) Xavier Baril2 Plan Origine Apports de SVN Reprise des concepts CVS Quelques différences Conclusion.
Travail réalisé par : LATRECHE Imed Eddine MENASRIA Med Lamine
La production informatique sécurisée et simplifiée
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
GESTION DE CONTENU Content Management System.
Création d’une communauté web scénarisée : le projet Crealys
Subversion, un outil de gestion de version
Elabore par BELKADHI ABIR BEN HASSEN SALMA CHEBBI MARWA
Supports de formation au SQ Unifié
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
08 Avril 2010 Versionnement de CODE (Subversion SVN et USVN) CATI Ecoinformatique le 08/04/2010.
ENGIMA.
Android Kévin Giroux.
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Présentation Finale Spirit 07 / 03 / 2011 Groupe Vert 1 Equipe Verte.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Master 1 ère année Sécurité des Systèmes Informatique 1 Gestion de modules  Un module est un morceau de code qui peut être chargé à la volée dans le noyau.
Séminaire (6-12 Février 2007) Promo. M2 ESCE-Tunis 2006/07
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Présentation Finale Spirit 07 / 03 / 2011 Groupe Vert 1 Equipe Verte.
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Présentation Finale Spirit 07 / 03 / 2011 Groupe Vert 1 Equipe Verte.
Module 3 : Création d'un domaine Windows 2000
INDATA Ingénierie Les secteurs d’activités d’INDATA :
Présentation ESTRABOX
L’enseignement de spécialité SLAM
1 Interface Web-Service pour une application génie logiciel Equipe : LIP6 Team Move Date : 02/09/2008 Auteur : S. HONG Encadrants : F. KORDON / J.B. VORON.
Centralisation des sites web d’ELTA & Mise en place d’un serveur NAS
Subversion.
PARTIE B: Systèmes de contrôle de révisions Plusieurs acteurs sur un même projet Projets distribués Entremêlement des préoccupations Entremêlement des.
Julien Lamure - Réunion des CI du 15/11/2006 Quelques utilitaires de création de comptes pour Windows 2003 server - GUNT - Gestion - PowerAD - Magret -
1 Monopalme Projet 4 Info Présentation finale LE LAY Olivier MAHE Jocelyn FORM Nicolas HENRY Gurvan BONNIN Thomas BASSAND Guillaume Décembre 2009 MONNIER.
Transcription de la présentation:

Introduction à la gestion de configuration avec CVS Xavier Baril

Plan Introduction Architecture Quelques commandes Les tags Les branches Conclusion (C) Xavier Baril

La gestion de configuration « La gestion de configuration consiste à gérer la description technique d'un système (et de ses divers composants), ainsi qu'à gérer l'ensemble des modifications apportées au cours de l'évolution du système. » Wikipedia Logiciel de gestion de version (CVS) La gestion de configuration consiste à gérer la description technique d'un système (et de ses divers composants), ainsi qu'à gérer l'ensemble des modifications apportées au cours de l'évolution du système. La gestion de configuration est utilisée pour la gestion de systèmes complexes : - en informatique - en aéronautique - en automobile En informatique, la gestion de configuration est utilisée de manière à stocker et tracer les différentes versions ou révisions de toute information destinée à être utilisée par un système (matériel, logiciel, document, donnée unitaire, etc.). Ceci est réalisé à l'aide de Logiciel de gestion de versions, commerciaux, payants ou gratuit (exemple CVS). Utilisée dans le suivi de version de logiciels, la gestion de configuration permet par exemple de gérer les codes sources. Utilisée dans le suivi de version de documents, il permet de tracer toutes les modifications qui sont intervenues sur les informations contenues dans le document. (C) Xavier Baril

CVS : qu’est ce que c’est ? CVS = Concurrent Version System Outil d’aide au développement Gestion de versions Au niveau du projet Au niveau de chaque fichier Permet d’annoter les modifications sur des fichiers (C) Xavier Baril

Projet informatique Entre 1 et N développeurs Un cahier des charges De la production (spécification ?, conception, codage, …) Des livraisons (conception, sources, tests, exécutable, documentation) Beaucoup de fichiers ! Nécessité de conserver une trace du travail (C) Xavier Baril

Exemple d’arborescence code lib scripts src test delivery doc design quality spec test tools java uml … (C) Xavier Baril

Intérêts de CVS Conserver un historique du travail Faciliter le développement en équipe Qui a fait une modification ? A quelle date ? Pourquoi ? Stockage centralisé Gestion des accès concurrents (C) Xavier Baril

Limites et difficultés Espace de stockage CVS ne gère pas tout ! Pas de prise en compte de « processus métier » Difficultés : Renommer les fichiers Modifier l’arborescence Nécessite des compétences (administration, gestion des branches, …) (C) Xavier Baril

Historique SCCS (Source Code Control System) RCS (Revision Control System) Défauts de SCCS et RCS Fonctionnent au niveau fichier Ne sont pas interopérables à distance Création de CVS en appui sur RCS : 1989 (CVS est sous licence GPL) Les systèmes unix étaient fournis avec SCCS, mais cet outil ne convient pas à la Free Software Foundation créée par Richard M. Stelllman pour être utilisé dans son projet GNU (Gnu is Not Unix) 4 droits fondamentaux pour la licence GPL : Utilisation sans limitation Étudier et adapter Redistribuer Améliorer et distribuer les améliorations (C) Xavier Baril

Concepts de base Dépôt (repository) Module Révision Répertoire partagé par tous Conserve l’historique des modifications Module Ensemble de fichiers sources ou de répertoire constituant un projet Révision Chaque fichier a un numéro de révision unique (C) Xavier Baril

Architecture CVSROOT /usr/local/cvs CVSROOT :pserver:usr@server:/usr/local/cvs Copie Server CVS Copie Client CVS (pserver) CVSROOT :ext:usr@server:/usr/local/cvs Copie Client CVS (ssh) (C) Xavier Baril

Vocabulaire Revision Repository Working copy Check out Commit Log message Update Conflict - Revision: A committed change in the history of a file or set of files. A revision is one "snapshot" in a constantly changing project. - Repository: The master copy where CVS stores a project's full revision history. Each project has exactly one repository. - Working copy: The copy in which you actually make changes to a project. There can be many working copies of a given project; generally each developer has his or her own copy. - Check out: To request a working copy from the repository. Your working copy reflects the state of the project as of the moment you checked it out; when you and other developers make changes, you must use commit and update to "publish" your changes and view others' changes. - Commit: To send changes from your working copy into the central repository. Also known as check-in. - Log message: A comment you attach to a revision when you commit it, describing the changes. Others can page through the log messages to get a summary of what's been going on in a project. - Update: To bring others' changes from the repository into your working copy and to show if your working copy has any uncommitted changes. Be careful not to confuse this with commit; they are complementary operations. Mnemonic: update brings your working copy up to date with the repository copy. - Conflict: The situation when two developers try to commit changes to the same region of the same file. CVS notices and points out conflicts, but the developers must resolve them. (C) Xavier Baril

Quelques commandes (1) Cvs add Cvs checkout Nécessaire lorsqu’on créé un nouveau fichier (ou répertoire) pour l’ajouter au module Seules les modifications en local sont effectuées : utiliser cvs commit Cvs checkout Demander au serveur de renvoyer les fichiers d'un module (C) Xavier Baril

Quelques commandes (2) Cvs commit Cvs update Valider et intégrer les changements effectués en local Le serveur attribut un nouveau numéro de révision Cvs update Mettre à jour les fichiers locaux La commande commit demande au serveur de valider et d'intégrer les changements qui ont pu être faits sur les fichiers en local. Le serveur mettra donc à jour les fichiers modifiés et leur attribuera un nouveau numéro de révision. Le commit peut se faire sur l'ensemble des fichiers modifiés, ou sur un fichier précis. La commande update a pour effet de mettre à jour les fichiers locaux à partir de versions situées sur le serveur, ou de consulter le statut des fichiers locaux par rapport à ceux sur le serveur. Cette commande est un peu plus complexe que les précédentes. Un simple cvs update va lister l'ensemble des fichiers et préciser le statut de ces fichiers dans le serveur par rapport à ceux présents sur le poste local. Mais ce n'est pas tout, l'ensemble des fichiers pour lesquels une nouvelle révision sera disponible sur le serveur seront directement mis à jour sur le poste local. Ainsi, si vous avez entamé des modifications à partir d'une révision et que quelqu'un a créé une nouvelle révision entre temps, l'appel de cvs update vous permettra de mettre à jour votre copie locale en intégrant les changements induits par la nouvelle révision (ce qui n'exclue pas la possibilité d'avoir à résoudre des conflits). Vos modifications sont alors intégrées en local à la révision la plus récente, vous pouvez tranquillement mettre à jour le fichier sur le serveur avec un cvs commit. (C) Xavier Baril

Statuts d’un fichier Up-to-date Locally Modified Locally Added Locally Removed Needs Checkout Needs Merge Unresolved Conflict Unknown … Up-to-date The file is identical with the latest revision in the repository for the branch in use. Locally Modified You have edited the file, and not yet committed your changes. Locally Added You have added the file with add, and not yet committed your changes. Locally Removed You have removed the file with remove, and not yet committed your changes. Needs Checkout Someone else has committed a newer revision to the repository. The name is slightly misleading; you will ordinarily use update rather than checkout to get that newer revision. Needs Patch Like Needs Checkout, but the CVS server will send a patch rather than the entire file. Sending a patch or sending an entire file accomplishes the same thing. Needs Merge Someone else has committed a newer revision to the repository, and you have also made modifications to the file. File had conflicts on merge This is like Locally Modified, except that a previous update command gave a conflict. If you have not already done so, you need to resolve the conflict as described in 10.3 Conflicts example. Unknown CVS doesn't know anything about this file. For example, you have created a new file and have not run add. (C) Xavier Baril

La notion de « tag » Tag : (marqueur) d’un ensemble de fichiers afin de définir une version pour le projet. Utilisé pour les livraisons Un tag permet justement de ne pas avoir à connaître les révisions qu'il faut demander pour chaque fichier afin d'avoir un ensemble fonctionnel (C) Xavier Baril

Les « sticky tags » Bloquer un fichier sur une révision particulière Lors d’un update : « classique » le fichier n’est pas modifié « remove any sticky tag » le fichier est modifié (C) Xavier Baril

La notion de branche Définition : « dérivation dans l’histoire des éléments de configuration » Caractéristiques : Correspond à un « axe d’évolution » Rattachée à une branche source Peut contenir des sous-branches Concrètement : permet de gérer l’évolution de versions parallèles En gestion de configuration, une branche est une dérivation dans l'histoire de l'évolution des éléments de configuration. On parle donc de «branche de version». Une branche de version correspond à un axe d'évolution de versions. Elle est rattachée à une branche source et peut découler sur plusieurs sous-branches. L'évolution des versions se fait de façon linéaire au sein d'une même branche ; c’est-à-dire que les versions se suivent chronologiquement. L'apport des branches offre la possibilité d'avoir des évolutions de versions en parallèle. (C) Xavier Baril

Fusion de branches Combiner des modifications pour créer une nouvelle version Intérêts : Synchronisation entre plusieurs développeurs Annulation d’une ancienne modification Import d’une modification d’une branche vers une autre Cette activité consiste à combiner des modifications ou des suites de modifications (qu'elles viennent de branches différentes ou non) pour créer une nouvelle version. On peut décliner plusieurs intérêts à la fusion : - la synchronisation entre plusieurs développeurs, qui travaillent habituellement séparément, donc sur des branches de version différentes - l'annulation d'une ancienne modification (par opposition à la toute dernière), à appliquer sur la version actuelle - l'import d'une modification d'une branche vers une autre (C) Xavier Baril

Modèle de branche par objectif (C) Xavier Baril

Outils Client : Interfaces graphiques Serveur (Windows) WinCVS TortoiseCVS tkcvs … Eclipse Serveur (Windows) CVSNT (C) Xavier Baril

Plugin Eclipse : propriétés (C) Xavier Baril

Plugin eclipse : menus (C) Xavier Baril

Conclusion (1) Cas d’utilisation Points faibles Historisation archivage de documents Développement à plusieurs Points faibles Renommage, déplacement, suppression de fichiers Dépôt unique Incomplet pour la gestion de configuration (pas de règles d’utilisation) (C) Xavier Baril

Conclusion (2) Points forts Performant pour la gestion de versions Accès à distance du dépôt Très utilisé Intégré dans de nombreux outils Gratuit, open-source (C) Xavier Baril

Bibliographie http://www.cvshome.org (site officiel) http://cvsbook.red-bean.com/cvsbook.html (assez complet) http://www.google.fr ;-) (C) Xavier Baril