Un aperçu de la gestion de version décentralisée avec GNU Arch



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

Systèmes de gestion de code source

Les systèmes de gestion de version

Outils de développement collaboratif

Le système de gestion de version Git et GitHub

Serveur de travail collaboratif Michaël Hoste -

Méthodes et outils employés pour développer des logiciels libres

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

Nouvelles stratégies et technologies de sauvegarde

Analyse Concurrentielle Retrospect et ses concurrents

SIO-SISR : Projet GSB. LOT 1 : Evaluation d un logiciel d inventaire et de gestion de parc. BTS Services Informatiques aux Organisations 1 ère année

Chapitre 1 Windows Server

Analyse Concurrentielle Retrospect et ses concurrents

FusionInventory. I-Détails et explication de l installation de l agent FusionInventory

Cyberclasse L'interface web pas à pas

Installation / Sauvegarde Restauration / Mise à jour

Travailler à l'ensimag avec son matériel personnel

«clustering» et «load balancing» avec Zope et ZEO

Serveur Subversion Debian GNU/Linux

Travailler à l'ensimag avec son matériel personnel

Gestion des sauvegardes

Sommaire. Le quotidien du Service informatique. Qu est-ce que Panda Cloud Systems Management? Le cercle vertueux

Atelier Le gestionnaire de fichier

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

Le filtrage de niveau IP

CliniPACS : distribution sécurisée d'images DICOM en réseau local hospitalier

Introduction au protocole FTP. Guy Labasse

Environnements et Outils de Développement Cours 1 Introduction

Backup Exec 2010 vs. BackupAssist V6

Dr.Web Les Fonctionnalités

CAHIER DES CLAUSES TECHNIQUES

Travailler à l'ensimag avec son matériel personnel

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis

DSI - Pôle Infrastructures

Conférence Développeurs Magento. 27 novembre 2013 mageconf.org

Déployer des applications Perl

Linux LTE 2 - ISSBA. Année universitaire Linux Réseau et Archivage. Jean-Michel RICHER Faculté des Sciences, H206 1

Utiliser Subversion (SVN) avec Tortoise

1 Introduction à l infrastructure Active Directory et réseau

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

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

Configurer une sauvegarde FTP simple et efficace

Banque Carrefour de la Sécurité Sociale

PROJET ARCHI WINDOWS SERVER

Démos Reporting Services Migration vers SQL2008

Automatisation de l administration système

Limitations of the Playstation 3 for High Performance Cluster Computing

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

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

Serveur FTP. 20 décembre. Windows Server 2008R2

Sauvegarde des données au LAAS

Alfresco Guide Utilisateur

Auto réparation des postes de travail Comprendre et déployer les mises à jours de TSC avec OfficeScan Corporate 5.5

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Gestion répartie de données - 1

Part IV. Outils de dévéloppement pour le logiciel libre. Logiciel libre, une introduction. Support pour le dévéloppement collaboratif

Technologie de déduplication de Barracuda Backup. Livre blanc

L I V R E B L A N C P r o t ég e r l e s a p p l i c a t i o n s m ét i e r s c r i t i q u e s M a i n f r a m e, un b e s o i n c r u c i a l

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Technologie SDS (Software-Defined Storage) de DataCore

CLOUD CP3S SOLUTION D INFRASTRUCTURE SOUMIS À LA LÉGISLATION FRANÇAISE. La virtualisation au service de l entreprise. Évolutivité. Puissance.

«Clustering» et «Load balancing» avec Zope et ZEO

D31: Protocoles Cryptographiques

Cette option est aussi disponible sur les clients Windows 7 sous la forme d un cache réparti entre les différentes machines.

Organiser les informations ( approche technique )

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Thunderbird est facilement téléchargeable depuis le site officiel

Sauvegardes sous Mac OS X

Modelio by Modeliosoft

L application doit être validée et l infrastructure informatique doit être qualifiée.

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

TP1. Outils Java Eléments de correction

Debian en milieu professionnel. This document is under the GNU Free Documentation License.

M1101a Cours 4. Réseaux IP, Travail à distance. Département Informatique IUT2, UPMF 2014/2015

Backuppc, retour d expérience

Cisco Certified Network Associate

Haka : un langage orienté réseaux et sécurité

Automatisation de l administration système avec

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

e-obs : Conception et utilisation Rémy Decoupes Ether // ums3365

Groupe Eyrolles, 2006, ISBN :

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre

Installer un espace de travail collaboratif et d e learning.

Chef de file dans le développement de solutions de gestion de contenu

Synchroniser ses photos

Gestionnaire de réseaux Linux et Windows

Table des matières Page 1

Le stockage de données qui voit les affaires à votre manière. En hausse. nuage

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

Cours Bases de données

Sécurité du réseau. Micro gestion des Serveurs et Ordinateurs. Prise de Backup. Internet: 2 connexions et problème de vitesse.

Services Réseaux - Couche Application. TODARO Cédric

Virtualisation sous Linux L'age de raison. Daniel Veillard

Mise en place Active Directory / DHCP / DNS

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

ANTIDOTE 8 INSTALLATION RÉSEAU WINDOWS

Les commandes relatives aux réseaux

Transcription:

Un aperçu de la gestion de version décentralisée avec GNU Arch 1 Un aperçu de la gestion de version décentralisée avec GNU Arch Ludovic Courtès <ludovic.courtes@laas.fr> Toulibre, 10 janvier 2007

Un aperçu de la gestion de version décentralisée avec GNU Arch 2 De quoi allons nous parler? Le sujet gestion de versions (à la CVS, Subversion, etc.) décentralisée (à la GNU Arch, GIT, Darcs, etc.) Qui peut intéresser cette présentation? un utilisateur d outils centralisés (e.g., CVS, Subversion) n importe qui ayant besoin de gestion de version, d archivage, d outils pour le travail en groupe, etc. un geek cherchant un moyen de frimer

Un aperçu de la gestion de version décentralisée avec GNU Arch 3 Introduction à la gestion de version décentralisée, motivations - Gestion de versions centralisée et décentralisée - Premier problème : travail «hors-ligne» - Deuxième problème : droits d accès au dépôt - Troisième problème : coopération, travail en équipe - Pourquoi décentraliser? Résumé des motivations Introduction à GNU Arch Utilisation basique de GNU Arch Coopération avec GNU Arch Repoussons les limites! Critique et discussion de la concurrence

Un aperçu de la gestion de version décentralisée avec GNU Arch 4 Gestion de versions centralisée et décentralisée Centralisée? un dépôt central contenant toutes les données archivées impossibilité d échanger les données entre dépôts exemples : CVS, Subversion, PRCS, etc. problème : utilisateurs souvent contraints de «faire sans» Décentralisée? utilisation d un réseau de dépôts, tous équivalents approche «pair-à-pair» facilité d échange des données entre dépôts s abstrait de la frontière géographique

Un aperçu de la gestion de version décentralisée avec GNU Arch 5 Premier problème : travail «hors-ligne» Exemples travailler sur un projet depuis son portable sans avoir accès au réseau Comment faire en centralisé? impossible d accéder au dépôt (ex. : serveur CVS/Subversion) donc impossible d enregistrer des modifications on se retrouve à travailler sans gestion de versions avec les risques que ça comporte

Un aperçu de la gestion de version décentralisée avec GNU Arch 6 Deuxième problème : droits d accès au dépôt En gestion de versions centralisée mécanismes de gestion des droits d accès ad hoc (ex. : CVS) un seul dépôt, donc point singulier de défaillance souvent : limitation stricte des personnes ayant droit d accès (ex. : projet libre) Conséquences pratiques non désirables gestion des droits d accès spécifique, non triviale utilisateur sans accès en écriture = utilisateur de seconde classe on se retrouve à travailler sans gestion de versions

Un aperçu de la gestion de version décentralisée avec GNU Arch 7 Troisième problème : coopération, travail en équipe Exemple : développement de logiciel (libre) Alice veut travailler sur la fonctionnalité F 0 et se moque du reste Bob veut travailler sur F 1 mais n a pas accès en écriture au dépôt Problèmes Bob doit constamment mettre à jour sa copie locale (update) Bob est donc perturbé par les changements relatifs à F 0

Un aperçu de la gestion de version décentralisée avec GNU Arch 8 Pourquoi décentraliser? Résumé des motivations Techniquement s abstraire de la séparation physique entre dépôts fournir une solution générale faciliter la création de branches faciliter l intégration de changements faits dans d autres branches «Philosophiquement» faciliter la coopération sur des projets libres permettre réellement un modèle de développement pair-à-pair

Un aperçu de la gestion de version décentralisée avec GNU Arch 9 Introduction à la gestion de version décentralisée, motivations Introduction à GNU Arch - Remarques préliminaires - Historique rapide - Concepts de base, terminologie - Désignation - Désignation des révisions Utilisation basique de GNU Arch Coopération avec GNU Arch Repoussons les limites! Critique et discussion de la concurrence

Un aperçu de la gestion de version décentralisée avec GNU Arch 10 Remarques préliminaires J entends dire c est bizarre c est vraiment ++bizar--re c est lent c est intrusif c est passé de mode mais pourquoi pas plutôt Bazaar/Darcs/GIT/Mercurial/Monotone/? Parce que : c est celui que j utilise ;-) ça marche c est robuste et mûr dispose de fonctionnalités non disponibles ailleurs

Un aperçu de la gestion de version décentralisée avec GNU Arch 11 Historique rapide premier outil (libre) de gestion de révisions décentralisé initialement écrit par Tom Lord débuté en 2002 a influencé d autres outils : Darcs, Bazaar, Aegis, etc. larch (2002), scripts shell tla (2003), C ArX (2003), C++ tla 1.3.x baz (aka. Bazaar 1.x, 2004-2005) bzr (aka. Bazaar 2, 2005)

Un aperçu de la gestion de version décentralisée avec GNU Arch 12 Concepts de base, terminologie archive (= dépôt) endroit où sont stockées les différentes versions des données branche identification logique d un ensemble de travaux cohérent : «la branche de Linus T.» «la branche 2.6 du noyau» «la branche de développement de la fonctionnalité F» révision contenu d une branche tel qu admis (committed) par l utilisateur à un moment précis.

Un aperçu de la gestion de version décentralisée avec GNU Arch 13 Désignation Attention, ne plaît pas à tout le monde! ;-) archive/dépôt objectif : nom globalement unique sur Internet (autant que possible) format (et convention) : ludo@chbouib.org--bidule-2007 branche identifiant divisé en trois éléments : «catégorie», «branche» et «version» format : categorie--branche--x.y exemples : linux--torvalds--2.6, linux--andrew--2.2, emacs--devel- -2007 nom complet, globalement unique : linus@osdl.org/linux--torvalds--2.6

Un aperçu de la gestion de version décentralisée avec GNU Arch 14 Désignation des révisions Les bases la première (import) : base-0 les suivantes : patch-1, patch-2, etc. nom complet : l@c bidule/c--b--v--patch-5 Cycle de vie d une branche possibilité de sceller une branche base-0 commit commit --seal version-0 commit --fix patch-x commit commit versionfix-x commit --fix

Un aperçu de la gestion de version décentralisée avec GNU Arch 15 Introduction à la gestion de version décentralisée, motivations Introduction à GNU Arch Utilisation basique de GNU Arch - Commencer avec GNU Arch (tla) - Inventaire des fichiers - Inventaire : avantages et inconvénients - Bon, et comment on «rajoute» un fichier? - Et ensuite? Coopération avec GNU Arch Repoussons les limites! Critique et discussion de la concurrence

Un aperçu de la gestion de version décentralisée avec GNU Arch 16 Commencer avec GNU Arch (tla) Création d une archive protocoles possibles : système de fichiers, FTP, SFTP, HTTP commande : make-archive Accès à une archive existante commande : register-archive établit la correspondance entre le nom et l URL Création d une branche nouvelle branche : archive-setup à partir d une branche existante : tag -S

Un aperçu de la gestion de version décentralisée avec GNU Arch 17 Inventaire des fichiers Catégorie Effaçable? Archivé? junk, backup oui non precious non non source non oui unrecognized? Classification des fichiers par nom à partir de regexps spécifié par branche, dans {arch}/=tagging-method

Un aperçu de la gestion de version décentralisée avec GNU Arch 18 Inventaire : avantages et inconvénients Inconvénients intrusif parfois redondant avec un Makefile Intérêts plus précis/complet qu un.cvsignore pratique pour l import de nombreux fichiers évite d oublier des fichiers ou d en rajouter (commande lint)

Un aperçu de la gestion de version décentralisée avec GNU Arch 19 Bon, et comment on «rajoute» un fichier? Comme souvent, il y a plusieurs façons Principe : chaque fichier a un identifiant quand le fichier est renommé, l identifiant ne change pas permet de suivre les renommages La méthode explicit comme avec CVS, SVN, etc. : tla add fichier La méthode tagline on peut encore utiliser tla add ou ajouter une ligne arch-tag dans le(s) fichier(s)

Un aperçu de la gestion de version décentralisée avec GNU Arch 20 Et ensuite? La suite est habituelle tla commit tla changes tla diff tla undo tla redo tla revisions tla changelog

Un aperçu de la gestion de version décentralisée avec GNU Arch 21 Introduction à la gestion de version décentralisée, motivations Introduction à GNU Arch Utilisation basique de GNU Arch Coopération avec GNU Arch - Voir ce qu ont fait les autres - Fusion et intégration de modifications - Bonnes pratiques pour faciliter la coopération - Intégrité et authenticité - Coopération en pratique dans le libre Repoussons les limites! Critique et discussion de la concurrence

Un aperçu de la gestion de version décentralisée avec GNU Arch 22 Voir ce qu ont fait les autres lister les révisions : revisions lister les révisions qui nous manquent : missing

Un aperçu de la gestion de version décentralisée avec GNU Arch 23 Fusion et intégration de modifications Intégration d un changement cherry-picking : on choisit spécifiquement des modifications à «rejouer» commande replay toujours indépendamment de la localisation de l autre branche Fusion de changements avec star-merge applique tous les changements faits depuis la dernière fusion dans l autre branche conserve les changements locaux voir les fusions : commande merges ou interface ArchWay

Un aperçu de la gestion de version décentralisée avec GNU Arch 24 Bonnes pratiques pour faciliter la coopération objectif : faciliter la fusion entre développeurs créer des branches pour identifier le travail sur une fonctionnalité, etc. enregistrer des ensembles de changements cohérents (clean changesets) les modifications introduites par une révision doivent toutes avoir un rapport ne pas fusionner et modifier en même temps

Un aperçu de la gestion de version décentralisée avec GNU Arch 25 Intégrité et authenticité Arch garantit l intégrité de chaque révision avec des sommes MD5/SHA1 stockées dans l archive Garantir l authenticité permet de certifier l origine d une modification avec des signatures GPG signature d un changement ou signature d une révision complète

Un aperçu de la gestion de version décentralisée avec GNU Arch 26 Coopération en pratique dans le libre Par envoi de demandes de fusions chacun travaille séparément lorsqu on est prêt, envoi d une demande de fusion au mainteneur/auteur (merge request) inconvénient : impossible d envoyer les changements par courriel (le diff ) En utilisant un «gestionnaire de file de modifications» (PQM) le PQM lit les courriels qui lui sont adressés lorsqu on est prêt, envoi d une demande de fusion au PQM le PQM intègre la fusion dans sa branche sauf si il y a conflit, échec des suites de tests, etc.

Un aperçu de la gestion de version décentralisée avec GNU Arch 27 Introduction à la gestion de version décentralisée, motivations Introduction à GNU Arch Utilisation basique de GNU Arch Coopération avec GNU Arch Repoussons les limites! - Création de miroirs d archives - Mécanisme des «configurations» - Exemple de configuration - Mais c est un peu lent tout ça! - Un cache dans l archive Critique et discussion de la concurrence

Un aperçu de la gestion de version décentralisée avec GNU Arch 28 Création de miroirs d archives mécanisme intégré à tla création de miroirs push ou pull (commande make-archive) mise à jour des miroirs en une commande : archive-mirror

Un aperçu de la gestion de version décentralisée avec GNU Arch 29 Mécanisme des «configurations» Les configurations exprime les dépendances (d un logiciel) de manière précise (branche voire révision) précise le répertoire où stocker chaque dépendance Utilisation projet séparé en plusieurs branches sous-projets désignés par une configuration dans le projet principal build-config récupère les sous-projets et les met dans les bons répertoires

Un aperçu de la gestion de version décentralisée avec GNU Arch 30 Exemple de configuration # Une configuration du noyau Linux # répertoire < > branche à stocker arch/i386 l@c/linux--i386--2.6 arch/sparc l@c/linux--sparc--2.6 drivers l@c/drivers--main--2.6

Un aperçu de la gestion de version décentralisée avec GNU Arch 31 Mais c est un peu lent tout ça! Problème de performance révision obtenue par application des modifications depuis base-0 si en plus les révisions sont distantes Solution : créer un cache de révisions révisions récemment utilisées disponibles instantanément commandes my-library, library-config

Un aperçu de la gestion de version décentralisée avec GNU Arch 32 Un cache dans l archive Problème : performance du premier get obtention d une branche pour la première fois besoin d appliquer beaucoup de changements, donc lent Solution : un cache dans l archive cacherev stocke une révision complète dans l archive un get devient rapide

Un aperçu de la gestion de version décentralisée avec GNU Arch 33 Introduction à la gestion de version décentralisée, motivations Introduction à GNU Arch Utilisation basique de GNU Arch Coopération avec GNU Arch Repoussons les limites! Critique et discussion de la concurrence - Critique de GNU Arch - Et la concurrence? - Les avantages des «nouveaux» - Les soucis des «nouveaux»

Un aperçu de la gestion de version décentralisée avec GNU Arch 34 Critique de GNU Arch Problèmes performance difficilement utilisable avec des très gros projets (ex. : Linux) relative inefficacité du stockage Avantages fonctionnement transparent format d archive transparent, basé sur des simples fichiers simple à déployer puissant, robuste en un mot : cool

Un aperçu de la gestion de version décentralisée avec GNU Arch 35 Et la concurrence? Bazaar 2.x (bzr) Darcs GIT/Cogito Mercurial

Un aperçu de la gestion de version décentralisée avec GNU Arch 36 Les avantages des «nouveaux» (comparaison grossière) meilleures performances (sauf Darcs (?)) stockage plus efficace (sauf Darcs (?)) plus de notion d archive/dépôt : un répertoire est un dépôt facilité de prise en main, interactivité (surtout Darcs)

Un aperçu de la gestion de version décentralisée avec GNU Arch 37 Les soucis des «nouveaux» (comparaison grossière, voire partiale ) désignation des objets incompréhensible à l être humain : aed90ea99f (sauf Darcs) conséquence : format d archive «opaque», inaccessible peu ou pas de gestion des renommages (sauf Darcs et bzr) protocoles réseaux spécifiques ou pas toujours disponibles (ex. : rsync)

Un aperçu de la gestion de version décentralisée avec GNU Arch 38 Conclusion GNU Arch, c est bien. (mais ça pourrait être encore mieux) ;-)

Un aperçu de la gestion de version décentralisée avec GNU Arch 39 Fin! Questions? http://www.gnu.org/software/gnu-arch/ https://gna.org/projects/xtla-el http://www.nongnu.org/archway/ http://better-scm.berlios.de/