Contrôle de version / Subversion. Problèmes. Problèmes. Une solution. Développement collaboratif Ex. votre projet (travail en binôme)

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

La magie de SVN. Découverte & usage du logiciel

Serveur Subversion Debian GNU/Linux

Connexions à un projet CVS via Eclipse en accès local et distant. 15 Mai 2007

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

Correspondances Windows-Linux

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

Les systèmes de gestion de version

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

Cliquez sur le site que vous souhaitez consulter, il s affichera directement dans le navigateur.

Mysql. Les requêtes préparées Prepared statements

NAS 109 Utiliser le NAS avec Linux

L3 informatique TP n o 2 : Les applications réseau

Déployer les Fonts, Icones, et Images avec Forms Services 11G

Le système de gestion de version Git et GitHub

Gestion de projet Gestion de configuration Gestion de Conflits. Lydie du Bousquet Philippe Lalanda

CREATION WEB DYNAMIQUE

Novell. NetWare 6. GUIDE D'ADMINISTRATION DE NETDRIVE

Réparer un disque dur passé en RAW

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

LES ACCES ODBC AVEC LE SYSTEME SAS

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Serveur de travail collaboratif Michaël Hoste -

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Mise en place d un firewall d entreprise avec PfSense

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

Machine virtuelle Java pour Palm TX

Formation subversion (svn) Marc-Olivier Buob

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

Utiliser Subversion (SVN) avec Tortoise

EXA1415 : Annotations

TD/TP 1 Introduction au SDK d Android

Planifier les rapports d

Systèmes de gestion de code source

TP Git. Author : Cedric Dumoulin Date : 2 déc Rev : 9 Dec. 2014

Client SFTP Filezilla. Version anglaise du client 1/14

Réparer un disque dur passé en RAW

Le serveur communication unifiée IceWarp. Guide de mise à jour. Version 10. Février IceWarp France / DARNIS Informatique

Olivier Mondet

Outils de développement collaboratif

Prolink net via internet

Notes de cours : bases de données distribuées et repliquées

Projet de développement

WDpStats Procédure d installation

Guide de mise à jour BiBOARD

HTTP Commander. Table des matières. 1-Présentation de HTTP Commander

Installation SQL Server 2005 Express sur le serveur

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

MANUEL D INSTALLATION D UN PROXY

Test de HSQLDB et Comparatif avec Sqlite

Synchronisation Mysql (Replication)

Tutoriel git. Régis Briant, Youngseob Kim & Dmitry Khvorostyanov. Table des matières. 1 Configurer git 2

Déployer une application Web avec WebMatrix et Ma Plateforme Web

Sauvegardes sous Mac OS X

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

Les différentes méthodes pour se connecter

TP Contraintes - Triggers

Business Sharepoint Contenu

TP Service HTTP Serveur Apache Linux Debian

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Encryptions, compression et partitionnement des données

Installation du transfert de fichier sécurisé sur le serveur orphanet

Service de certificat

Logiciel HLA Fusion Version 3.X.X

SQL Historique

FAQ Trouvez des solutions aux problématiques techniques.

Mendeley, pour gérer sa bibliographie et la partager. Patricia Volland-Nail

SQL SERVER PRECONISATIONS A L INSTALLATION.2 VERIFICATION INSTALLATION...2 CONNEXION RESEAU.4 EMPLACEMENTS DOSSIERS & SAUVEGARDES...

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Documentation Utilisateur/Développeur. Client de Monitoring CamTrace

Couche application. La couche application est la plus élevée du modèle de référence.

ALOHA Load Balancer Guide de démarrage

NAS 208 WebDAV Une alternative au protocole FTP pour le partage sécurisé des fichiers

Module pour la solution e-commerce Magento

Utilisation de l outil lié à MBKSTR 9

Note Technique. 1. Objectif. 2. Prérequis. 3. Installation

Microsoft Hosted Exchange 2010 DOCUMENT D EXPLOITATION

WebSpy Analyzer Giga 2.1 Guide de démarrage

Formation en Logiciels Libres. Fiche d inscription

Introduction à Eclipse

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

FOIRE AUX QUESTIONS - WebDEPOT

Netstorage et Netdrive pour accéder à ses données par Internet

vcenter Server 1. Interface Lancez le vsphere Client et connectez vous à vcenter Server. Voici la page d accueil de vcenter Server.

Alfstore workflow framework Spécification technique

MANUEL D INSTALLATION de GEONETWORK sur un serveur LINUX CentOS 4

Gestion de documents

Gestion Electronique de Document (ECM/GED)

Parallels Plesk Panel. Module Pare-feu de Parallels Plesk Panel 10 pour Linux/Unix. Guide de l'administrateur

TP 7, 8 & 9 : Installation et Gestion de GLPI et Télédéploiement SISR 1 HUBERT JULIEN LABBE RICHARD DAY MICKAEL DOGNY CHRISTOPHE

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

Groupe Eyrolles, 2006, ISBN :

Tutoriel d installation de Hibernate avec Eclipse

Chapitre 2 Accès aux partages depuis votre système d'exploitation

Présentation du Serveur SME 6000

Qu est ce qu Internet. Qu est-ce qu un réseau? Internet : à quoi ça sert? présentation des services. Exemple de configuration. Rôles des éléments

GUIDE D'INSTALLATION DU SYSTEME DE GESTION DE BASES DE DONNEES MYSQL POUR LE PGI EBP

Transcription:

Contrôle de version / Subversion Problèmes Développement collaboratif Ex. votre projet (travail en binôme) Systèmes et réseaux I David Gross-Amblard / Olivier Togni 20/09/2012 http://ufrsciencestech.u-bourgogne.fr/licence3/systemesetreseauxi/ Bob : «voici sur une clé mon boulot de hier, j'ai modifié main.sh dans projet/» John : «ok, moi j'ai juste changé toto.sh» Bob : «Ah mais moi aussi! Mais il est chez moi!» John : «De toutes façon ça marche pas, revenons en arrière» Bob: «Oui, mais j'ai pas de sauvegarde!» Problèmes Echange de fichiers nombreux Conflits de modification Accès à distance Sauvegarde et gestion de version Une solution Avec subversion (svn) : Chacun récupère le code actuel depuis un serveur central Chacun travail sur sa copie locale Chacun, quand il a terminé, valide son résultat auprès du serveur Si conflit : détection et demande de réconciliation Possibilité de récupérer n'importe quelle version passée

Dans ce cours Création d'un dépôt Synchronisation avec le dépôt Résolution des conflits Notions générales :dépôt (repository) Répertoire contenant : Toutes les versions de tous les fichiers Le journal des mises à jour (date, auteurs des mises à jours,...) Apparaît de l'extérieur comme une arborescence de fichier dans laquelle on peut naviguer selon ses droits Initialisation d'un dépôt Création du dépôt (1 fois) svnadmin create /chemin/mon/depot Importation initiale de code svn import <nom répertoire> <url du dépôt> URL : http, ssh, etc. Projet : Un dépôt contient un ou plusieurs projets Un projet n'est qu'un sous répertoire Copie de travail (working copy) Répertoire sur une machine quelconque (par nécessairement celle du dépôt) contenant une copie d'une révision des fichiers d'un projet du dépôt > svn checkout <url du repertoire> ex. > svn checkout ssh://gadavid@ufrsciencestech.ubourgogne.fr/mondepot/monprojet1

(Numéro de) révision Chaque version du dépôt possède un numéro de révision (différent révision des fichiers, comme dans CVS) Ce numéro augmente à chaque opération Permet de distinguer les versions du dépôt Suivi d'une copie locale Pour chaque fichier d'une copie locale Sur quelle révision il est basé A-t-il été modifié localement depuis? Etats possibles commitupdate (Non modifié, à jour / dépôt) : rien rien (Modifié, à jour) : maj rien (Non modifié, obsolète) : rien maj (Modifié, obsolète) : refus maj avec fusion Commit et update séparés Copie locale : contient des révisions mélangées Faire un commit : ne met pas à jour tous les fichiers Update : c'est son rôle Synchronisation Obtenir les dernières mises à jour > svn update U index.htm Updated to revision 37. Envoyer ses modifications > svn commit -m «J'ai fait ça...» Sending credits.htm Transmitting file data. Committed revision 38.

Gestion des versions «Oups, je veux revenir à la version précédentes» (rollback) > svn revert credits.htm Reverted 'credits.htm' «Finalement, notre version 36 était la mieux» > svn update -r 36 credits.htm U credits.htm Updated to revision 36. Gestion des fichiers Si modifications (ajout, effacement, renommage) de fichiers dans la copie locale, svn le signale Il faut expliciter les modifications svn add, svn delete, svn move Effectif au prochain commit Gestion des conflits Bob John Int x=0; Int x=0; Int y=2; Int z=5; println(x); println(x); Modifications dans le même fichier de deux copies locales Le premier commit (ex. Bob) passe Gestion des conflits Fusion : Modification dans des zones distinctes? Résolution automatique (merge) > svn update G merci.htm Updated to revision 42. Le commit de John ne passe pas doit faire un update fusion Ensuite commit de John

Gestion des conflits Modification dans des zones communes : conflit devant être résolu manuellement # merci.htm.mine : votre version # merci.htm.r42 : version de départ de chacun (dernier update) # merci.htm.r43 : version actuellement dans le dépôt, en conflit avec mine # merci.htm : version fusionnée avec localisation des conflits Gestion des conflits Résolution à la main (éditeur) Validation avec > svn resolved merci.htm Resolved conflicted state of 'merci.htm' > svn commit Autres notions Tags : permet de nommer une version précise, indépendament des révision Tag «version à présenter en soutenance» Permet d'y revenir facilement (release) Bifurcation du projet Autres commandes Svn help : aide intégrée Svn info : copie de travail en cours Svn log : historique des modifications Svn blame : idem, ligne par ligne Svn list : parcourir le dépôt Tronc principal Branches (versions alternatives, éventuellement fusionnées avec le tronc)

Autres commandes svn propset svn:ignore *.o. Extension.o jamais dans le dépôt svn propset svn:keywords "Id" La chaîne $Id$ est remplacée par le numéro de révision à chaque update printf(«mon projet version $Id$\n»); printf(«mon projet version 17\n»); Fichiers binaires Pas de méthode naturelle de fusion Exclusion mutuelle par verrouillage harry> svn lock banana.jpg 'banana.jpg' locked by user 'harry'. sally>svn delete banana.jpg D banana.jpg sally>svn commit -m "Delete useless file." Deleting banana.jpg svn: Commit failed (details follow): Server sent unexpected return value(423 Locked) Fichiers binaires Harry> svn unlock banana.jpg 'banana.c' unlocked. Rq : locks perdus à chaque commit (décourage de les garder trop longtemps) Nombreux Clients graphiques TortoiseSVN (Windows) Kdevelop (Linux KDE) Intégration aux IDE Eclipse, Netbeans (bouton update/commit) etc.

Accès distants Méthodes d'accès (préfixe URL) file:// accès direct (système de fichier local) http:// accès par le protocole WebDAV (serveur Apache configuré pour Subversion) https:// idem, via chiffrement SSL Ancêtres/voisins de Subversion CVS (nombreuses migrations CVS vers SVN en cours) unisson (synchronisation de répertoires) Attention à votre projet : svn demande un temps de prise en main! svn:// accès à un serveur svnserve svn+ssh:// idem, à travers un tunnel SSH (chiffrement)