Gestion de Versions. Didier DONSEZ. Université Joseph Fourier (Grenoble 1) PolyTech Grenoble LIG/ADELE. http://membres-liglab.imag.



Documents pareils
Motivations (many2many) Motivations (many2one) Sur le thème de la Version. La gestion de version. La gestion de configuration.

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Plan global Outils de développement et compilation. Ce que l on veut éviter. Plan. Git : gestion de code source et versionnement.

Les systèmes de gestion de version

Forthcoming Database

Cedric Dumoulin (C) The Java EE 7 Tutorial

RAPID Prenez le contrôle sur vos données

Systèmes de gestion de code source

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

Editing and managing Systems engineering processes at Snecma

Serveur Subversion Debian GNU/Linux

Instructions Mozilla Thunderbird Page 1

Contrôle de versions et travail collaboratif. Organisation du travail collaboratif. Organisation du travail collaboratif

Application Form/ Formulaire de demande

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii

S9 - Contrôle des sources, gestion des demandes de changement et travail en équipe sous IBM i avec le produit RTC (Rational Team Concert)

ECLIPSE ET PDT (Php development tools)

Outils de développement collaboratif

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Tier 1 / Tier 2 relations: Are the roles changing?

Frequently Asked Questions

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

PRODUCTS LIST (updated 11th January 2010)

VTP. LAN Switching and Wireless Chapitre 4

Présentation Alfresco

COUNCIL OF THE EUROPEAN UNION. Brussels, 18 September 2008 (19.09) (OR. fr) 13156/08 LIMITE PI 53

Guide d installation de SugarCRM Open Source version 4.5.1

Projet de développement

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Logiciel Libre & qualité. Présentation

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

WEB page builder and server for SCADA applications usable from a WEB navigator

iqtool - Outil e-learning innovateur pour enseigner la Gestion de Qualité au niveau BAC+2

Architecture client riche Evolution ou révolution? Thomas Coustenoble IBM Lotus Market Manager

Les logiciels de gestion de version exemple de GIT et application avec SmartGIT

affichage en français Nom de l'employeur *: Lions Village of Greater Edmonton Society

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

RÉSUMÉ DE THÈSE. L implantation des systèmes d'information (SI) organisationnels demeure une tâche difficile

Installer Enterprise Miner 5.1 en SAS environnement Windows

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

Formation continue BNF // Programme des cours 2015

UML : Unified Modeling Language

Les techniques de la télémaintenance

Le système de gestion de version Git et GitHub

Quatre axes au service de la performance et des mutations Four lines serve the performance and changes

PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

C.M. 1 & 2 : Prise en main de Linux

SHAREPOINT PORTAL SERVER 2013

Once the installation is complete, you can delete the temporary Zip files..

Eclipse Process Framework et Telelogic Harmony/ITSW

SERVEUR DÉDIÉ DOCUMENTATION

Mon Service Public - Case study and Mapping to SAML/Liberty specifications. Gaël Gourmelen - France Telecom 23/04/2007

Environnement de Développement Outils Open-Source d'integration Continue. Exemple de Mise en Oeuvre

Ingénierie et gestion des connaissances

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

Exemple PLS avec SAS

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

SCC / QUANTUM Kickoff 2015 Data Protection Best Practices

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

ICA Congress, Brisbane 2012 Thème général : Les temps qui changent. La confiance et les archives*

Institut français des sciences et technologies des transports, de l aménagement

8. Cours virtuel Enjeux nordiques / Online Class Northern Issues Formulaire de demande de bourse / Fellowship Application Form

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Programming Server-Side Web Applications with Object-Oriented PHP NC Group Syllabus. Duration: 75 hours 1-2-2

Les Portfolios et Moodle Petit inventaire

Une introduction à la gestion de configurations. Pascal Molli web: molli September 25, 2006

Le cadre des Web Services Partie 1 : Introduction

English Q&A #1 Braille Services Requirement PPTC Q1. Would you like our proposal to be shipped or do you prefer an electronic submission?

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

TD/TP 1 Introduction au SDK d Android

Monitor LRD. Table des matières

Plateforme Technologique Innovante. Innovation Center for equipment& materials

Multi-Workload SharePoint Gouvernance et ECM

Cours Gestion de projet

Tutoriel Création d une source Cydia et compilation des packages sous Linux

NOM ENTREPRISE. Document : Plan Qualité Spécifique du Projet / Project Specific Quality Plan

Natixis Asset Management Response to the European Commission Green Paper on shadow banking

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Stage Ingénieur en développement logiciel/modélisation 3D

L'agilité appliquée à nous-mêmes. Philippe Krief, PhD Development Manager IBM France Lab

S10 - Automatisez la compilation et le déploiement de vos applications IBM i avec Arcad Pack for Rational

Serveur de travail collaboratif Michaël Hoste -

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Petit guide pour l installation de CVW sous Linux

Alfstore workflow framework Spécification technique

Practice Direction. Class Proceedings

Township of Russell: Recreation Master Plan Canton de Russell: Plan directeur de loisirs

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

Protection des Applications Web avec OpenAM

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

L offre décisionnel IBM. Patrick COOLS Spécialiste Business Intelligence

La solution idéale de personnalisation interactive sur internet

HSCS 6.4 : mieux appréhender la gestion du stockage en environnement VMware et service de fichiers HNAS Laurent Bartoletti Product Marketing Manager

APPENDIX 6 BONUS RING FORMAT

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

Transcription:

http://membres-liglab.imag.fr/donsez/cours Gestion de Versions Didier DONSEZ Université Joseph Fourier (Grenoble 1) PolyTech Grenoble LIG/ADELE Didier.Donsez@imag.fr Didier.Donsez@ieee.org

Motivations Ingénierie logiciel collaborative Maitriser le développement de logiciel par de grandes équipes de développeurs implémentations parallèles (spéculatives, vendeurs) Afin de Améliorer la productivité des développeurs et la fiabilité des logiciels Diminution des coûts de développement Gestion de la configuration des systèmes logiciels contrôle de l évolution des systèmes logiciels traçage des évolutions (machine a remonter le temps) suivie des issues, des bogues, 3

Software Configuration Management, SCM «Software Configuration Management (SCM) is part of configuration management (CM). Roger Pressman, in his book Software Engineering: A Practitioner's Approach, says that software configuration management (SCM) is a "set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made." In other words, SCM is a methodology to control and manage a software development project. SCM concerns itself with answering the question: somebody did something, how can one reproduce it? Often the problem involves not reproducing "it" identically, but with controlled, incremental changes. Answering the question will thus become a matter of comparing different results and of analysing their differences. Traditional CM typically focused on controlled creation of relatively simple products. Nowadays, implementers of SCM face the challenge of dealing with relatively minor increments under their own control, in the context of the complex system being developed.» Wikipedia 4

Contrôle des Versions Des versions pourquoi faire? Versions historiques repartir sur une version antérieure en cas d'erreur Versions alternatives (branchage) différentes conceptions/implémentations (parfois spéculatives) d'un même module Accès collaboratif par plusieurs personnes audit de l'histoire des modifications 5

Contrôle des Versions Que versionner? Grain de versionnement Corpus de documents reliés (site Web avec hyperliens) Document Ligne de texte (sources de programme C++, Java, C# ) Bloc Binaire (Image, Audio, Video, ) Documents semi-structurés (éléments XML, LaTeX, AST Java, AST C#, Wiki ) Journal des révisions Historique des commentaires associés aux révisions 6

Architecture générale Checkin - Checkout Un dépôt (repository) central Checkout (checkout,update) vers l espace de travail (workspace ou working copy) du rédacteur Checkin (import,commit) des modifications faites par le rédacteur vers le dépôt 7

Architecture (i) Dépôt central Rédacteur edit read check in Workspace check out check out save load check in 8

Architecture (ii) Administrateu r Dépôt central check in check in check out check out Rédacteur edit read Intégrateur check in Workspace Dépôt d équipe 1 check out save load Rédacteur edit read Intégrateur check in Workspace Dépôt d équipe 2 check out save load 9

Gestion de concurrence Ne rien faire! Lock-Modify-Unlock (pessimiste) SCCS, RCS Nuit à la productivité Copy-Modify-Merge (optimiste) Résolution de conflit en cas de modifications concurrentes (qui sont rares en réalité) Fusion (Merge), Choix, CVS, SVN : résolution au niveau du client Policy-based Processus de validation/fusion des contributions 11

Trunk Notion de versions Développement principal Branches Alternatives au développement principal Conception différentes/spéculatives, spécifiques à un vendeur (vendor) Révisions Séquence de versions Tags Révision identifiée symboliquement (Tiger,LongHorn, ) Représente une release publique (R), une milestone (M) Fusion de branches 20

Outils Les ancêtres SCCS, RCS, PVCS Les courants CVS SubVersion Git MS Visual SourceSafe ChangeMan (Serena) AllFusion Harvest (CA) ClearCase (IBM Rational) Perforce CM Synergy (Telelogic) Source Integrity (MKS) PVCS (Merant) TeamCode (Interwoven) Surround CM (Seapine) Protocole Orienté Web WebDAV/DeltaV 21

SCCS (Source Code Control System) Contrôle des versions de fichiers contrôle multi-accès ( 1 écrivain et N lecteurs ) limiter l'occupation disque => utilisation d'un journal ( log) stockant les différences (delta) Centralisé sur un système de fichier 22

SCCS (Source Code Control System) 23

SCCS Commandes sccs create <fic> le fichier passe sous le contrôle de SCCS (crée un fichier historique SCCS/s.fic) sccs get <fic> donne la dernière version de l'historique en lecture seulement sccs edit <fic> Check-out : donne la dernière version de l'historique pour modification le fichier est verrouillé (aucun autre edit n'est accepté) sccs delta <fic> Check-in : crée une nouvelle version dans l'historique le fichier est déverrouillé sccs info ou sccs tell ou sccs check liste les fichiers en cours d'édition ex: sccs delta -ujohn ex: sccs delta `sccs tell` 24

SCCS : Versions historiques SID (SCCS Identifier) et Keyword ID numéro de delta = #release + #level sccs reconnait dans les fichiers à versionner la chaîne static char SccsId[]= "%W%\t%G%" que sccs get remplace par static char SccsId[]= "@(#)prog.c 1.2 08/29/95" 25

SCCS : Versions historiques Commandes sccs what prog.c /usr/bin/prog liste la version d'édition @(#) sccs edit -r2 prog2 ou sccs edit -r2 SCCS crée une nouvelle release sccs get -c"95/07/28 12:00:00" prog.c retrouver une version antérieure par la date, par le SID (-r) sccs edit -x1.3 prog.c ( -x1.3-1.4 ou -x1.3-1) editer un fichier en excluant la modification apportée par un delta sccs prt prog.c audit des modifications apportées à un fichier 26

SCCS : Versions alternatives (ou branches) sccs admin -fb prog.c autorise les branches sccs edit -b prog.c crée une nouvelle branche si la dernière version était 1.4 on crée la branche 1.4.1 et donc le SID du premier delta est 1.4.1.1 sccs delta prog.c crée un nouveau delta 1.4.1.2 sccs edit -i1.4.1.1-1.4.1 prog.c sccs delta prog.c merge les modifications de la branche 1.4.1 avec la release principale Remarque: sccs peut signaler des conflits sccs get -r1.4.1 prog.c donne une version de l'arbre des versions 27

Concurrent Versions System (CVS) Motivation Copy-Modify-Merge Fichier par fichier Orienté ligne (sauf binaire) Branches et Tags Commandes admin, checkout, commit, history, log, diff, rdiff, import, export, release, update Status: Open-source Serveurs Clients (Unix et Windows) intégré à des nombreux IDE Tache ANT : cvs Documentation http://www.cvshome.org/docs/manual/index.html 28

SubVersion (SVN) Motivation Limitations de CVS Copy-Modify-Merge (mais possibilité de Lock/Unlock) Fichiers texte/binaire, Répertoire (move,rename), Propriétés (metadata) texte/binaire Orienté ligne (mais diff personnalisable) Détection des binaires Atomicité des checkin (import, commit) Révision séquentiel = modifications sur plusieurs fichiers/répertoires Lazy-copy (utile pour le branching/tagging) Indépendance aux protocoles File, Protocole spécifique, WebDAV/DeltaV Status : open-source Commandes svn: svnadmin: create Serveurs basés sur WebDAV/DeltaV: Unix, Windows 2000 & XP Clients: intégré à des nombreux IDE Voir cours sur SubVersion http://www-adele.imag.fr/users/didier.donsez/cours/subversion.pdf 29

Git version control system designed to handle very large projects with speed and efficiency mainly for various open source projects, most notably the Linux kernel. http://git.or.cz/ 30

TODO ClearCase (IBM Rational) Remarque : 4 taches ANT CCCheckin, CCCheckout, CCUnCheckout, CCUpdate 31

TODO Visual SourceSafe VSS (MicroSoft) Remarque: plusieurs tâches ANT vssget: Retrieves a copy of the specified VSS file(s). vsslabel: Assigns a label to the specified version or current version of a file or project. vsshistory: Shows the history of a file or project in VSS. vsscheckin: Updates VSS with changes made to a checked out file, and unlocks the VSS master copy. vsscheckout: Copies a file from the current project to the current folder, for the purpose of editing. vssadd: Adds a new file into the VSS Archive vsscp: Change the current project being used in VSS vsscreate: Creates a project in VSS. 32

WebDAV (i) Web Distributed Authoring and Versioning Protocol Extension de HTTP pour la mise à jour de site Web (RFC 2518) www.webdav.org, www.ics.uci.edu/pub/ietf/webdav Notions Property (propriété) Attachée à une ressource (auteur, taille, date de dernière modification, thumbnail,...) format XML/RDF Collection Locking (verrouillage) verrou partagé (shared) / verrou exclusif (exclusive) Namespace (espace de nommage) groupement logique de ressource pour la gestion (verrouillage, contrôle d accès,...) Mais absence de versionnement (revisions) Pallié par WebDAV/DeltaV Clients Nombreux. Même intégré à l explorateur de WinXP 33

WebDAV (ii) Web Distributed Authoring and Versioning Protocol Ajout de nouvelles commandes HTTP en plus de GET,PUT,POST,HEAD,DELETE PROPFIND retourne les propriétés PROPPATCH modifie les propriétés MKCOL crée une nouvelle collection COPY & MOVE copie ou déplace une ressource au sein d un espace de nommage LOCK & UNLOCK verrouille et déverrouille un ressource 34

WebDAV/DeltaV (RFC 3253) Extension de WebDAV pour gérer les revisions Per-resource versioning Server-side working-copy model Client-side working-copy model Configurations Custom data exchanges Autoversioning pour supporter les clients WebDAV non DeltaV Utilisé par SVN (mod_dav_svn) Voir http://svnbook.red-bean.com/en/1.2/svn.webdav.html 35

WebDAV/DeltaV (RFC 3253) Nombreuses implémentations Java Jakarta Slide http://jakarta.apache.org/slide/ open-source project composed of multiple modules tied together using WebDAV. It includes a CM API, a WebDAV server, WebDAV client APIs, J2EE compliant stores and more. Retirement in 2007 Apache JackRabbit 36

JSR 147: Workspace Versioning and Configuration Management (WVCM) provides DeltaV client-side API for creating and manipulating sets of version-controlled files and web resources. See http://jcp.org/en/jsr/detail?id=147 Implementations Jakarta Slide http://jakarta.apache.org/slide/ 37

La gestion de version dans les builders Tâches Ant Task Name Cvs CvsChangeLog CVSPass CvsTagDiff ClearCase Continuus/Synergy Microsoft Visual SourceSafe Description Handles packages/modules retrieved from a CVS repository. Generates an XML report of the changes recorded in a CVS repository. Adds entries to a.cvspass file. Adding entries to this file has the same affect as a cvs login command. Generates an XML-formatted report file of the changes between two tags or dates recorded in a CVS repository. Tasks to perform the ClearCase cleartool checkin, checkout, uncheckout, update, lock, unlock, mklbtype, rmtype, mklabel, mkattr, mkdir, mkelem, and mkbl commands. Tasks to perform the Continuus ccmcheckin, ccmcheckout, ccmcheckintask, ccmreconfigure, and ccmcreatetask commands. Tasks to perform the Visual SourceSafe vssget, vsslabel, vsshistory, vsscheckin, vsscheckout, vssadd, vsscp, and vsscreate commands. Perforce Pvcs SourceOffSite StarTeam Maven SCM plugin Tasks to perform the Perforce p4sync, p4change, p4edit, p4submit, p4have, p4label, p4counter, p4reopen, p4revert, and p4add commands. Allows the user extract the latest edition of the source code from a PVCS repository. Tasks to perform the SourceOffSite sosget, soslabel, soscheckin, and soscheckout commands. Tasks to perform the StarTeam stcheckout, stcheckin, stlabel, and stlist commands. The Starteam task is deprecated; use STCheckout instead. Bazaar, CVS, Mercurial, Perforce, StarTeam, Subversion, CM Synergy, ClearCase, Visual Source Safe 38

Les leaders d après The Forrester Wave : Software Change and Configuration Management, Q2 2007 http://www.collab.net/forrester_wave_report/index.html 39

Bibliographie Don Bolinger, Tan Bronson, "Applying RCS and SCCS, From Source Control to Project Control", Ed OReilly, 1995, ISBN 1-56592-117-8 Jennifer Vesperman, "Essential CVS ", Ed OReilly, 2003, ISBN 0-596- 00459-1 Per Cederqvist et al, Version Management with CVS, 1993 http://www.cvshome.org/docs/manual/index.html Ben Collins-Sussman, Brian W. Fitzpatrick & C. Michael Pilato, Version Control with Subversion, Pub. O Reilly, 2004, ISBN 0596004486 Version gratuite http://svnbook.red-bean.com/nightly/en/svn-book.pdf Alexandru Serban,Visual Sourcesafe 2005 Software Configuration Management in Practice, Pub. Packt Publishing, 2007, ISBN 1904811698 Sergio Garcia, Ingénierie Concurrente en Génie Logiciel : Céline, Thèse de doctorat d informatique, Université Joseph Fourier, Décembre 2006. http://www-adele.imag.fr/les.publications/reports/phd2006gar.pdf 40

Wikipedia Software configuration management http://en.wikipedia.org/wiki/software_configuration_management Revision control software http://en.wikipedia.org/wiki/list_of_revision_control_software#server- Based_Systems http://en.wikipedia.org/wiki/comparison_of_revision_control_software 42

A lire Software Configuration Management (SCM) Actes des «International Workshops on Software Configuration Management» 1988 à 2005 http://www.informatik.uni-trier.de/~ley/db/conf/scm/index.html J. Estublier. Software Configuration Management: A Roadmap, in Proceedings of 22nd International Conference on Software Engineering, The Future of Software Engineering, ACM Press, 2000. http://wwwadele.imag.fr/les.publications/bookchapters/icseroadmap2000est.pdf J Estublier, D. Leblang, G Clemm, R Conradi, W. Tichy, A. van der Hoek, D. Wiborg-Weber. Impact of the research community on the field of software configuration management. in Proceedings of the 24rd International Conference on Software Engineering, 2002. http://www-adele.imag.fr/scmimpact.pdf 43