La gestion de version avec Subversion. Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) et Synchrotron Soleil (St Aubin)



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

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

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

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

Serveur Subversion Debian GNU/Linux

Les systèmes de gestion de version

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

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

Le service FTP. M.BOUABID, Page 1 sur 5

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

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

Le système de gestion de version Git et GitHub

Systèmes de gestion de code source

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.

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

Installation et Configuration de Squid et SquidGuard sous Debian 7

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

1 Comment créer, administrer et participer à un sondage Doodle

Correspondances Windows-Linux

ftp & sftp : transférer des fichiers

Table des matières Hakim Benameurlaine 1

Installation de Snort sous Fedora

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

M2-RADIS Rezo TP13 : VPN

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

Modélisation et Gestion des bases de données avec mysql workbench

TP 1 Prise en main de l environnement Unix

Polytech Montpellier IG PROJET C Réseaux sociaux : recherche de composantes fortement connexes

FOIRE AUX QUESTIONS - WebDEPOT

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

bbc Launch Pad Juillet 2011 Version 10.0

HowTo Installer egroupware 1.2 sur SME Serveur 7.0

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

Étude de l application DNS (Domain Name System)

TP1 - Prise en main de l environnement Unix.

Architecture de la plateforme SBC

Les différentes méthodes pour se connecter

Gestion des documents avec ALFRESCO

Bon ben voilà c est fait!

Quelques éléments de compilation en C et makefiles

Utiliser Subversion (SVN) avec Tortoise

Guide d installation JMap 5.0

MODE OPERATOIRE CORIM PROGRESS / SECTION MEI. Exploitation Informatique

Mise en place d un firewall d entreprise avec PfSense

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

2 Formation utilisateur

Groupe Eyrolles, 2006, ISBN :

TP Bases de données réparties

Les outils de SEO (Référencement naturel) et les Sites SharePoint Public sur Office 365

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

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

I. Objectifs de ce document : II. Le changement d architecture :

Réparer un disque dur passé en RAW

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

Brique BDL Gestion de Projet Logiciel

Trixbox: Asterisk packagé. Unité Réseaux du CNRS

Programmation Web. Introduction

VAGRANT POUR LES DÉVELOPPEURS

Gestion de documents

Plateforme académique de partage de documents - owncloud

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Atelier individuel. Linux 101. Frédérick Lefebvre & Maxime Boissonneault frederick.lefebvre@calculquebec.ca U. Laval - Janv. 2014

Installation d'un serveur sftp avec connexion par login et clé rsa.

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

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Réparer un disque dur passé en RAW

Unix/Linux I. 1 ere année DUT. Université marne la vallée

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

Secure SHell. Faites communiquer vos ordinateurs! Romain Vimont ( R om)

CONTACT EXPRESS 2011 ASPIRATEUR D S

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

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

Mission 2 : Déploiement/Configuration Windows Server 2008 R2

WebSpy Analyzer Giga 2.1 Guide de démarrage

Configuration de GFI MailArchiver

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Récupérer au format AVI un extrait d'un DVD à l'aide du logiciel FlaskMpeg

Formation subversion (svn) Marc-Olivier Buob

Automatisation de l administration système

Projet Administration Réseaux

Aide-Mémoire unix. 9 février 2009

TP Contraintes - Triggers

Projet Semestre2-1SISR

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

Sauvegarde et Restauration d un environnement SAS

Serveurs de noms Protocoles HTTP et FTP

Serveur de sauvegardes incrémental

Serveur proxy Squid3 et SquidGuard

acheter en ligne l Esko Store Comment sur

TP Réseau n 4 Common Internet File System (CIFS) et Network File System (NFS)

PARTAGER UN ANNUAIRE COLLECTIF DE SIGNETS AVEC DEL.ICIO.US

SQL MAP. Etude d un logiciel SQL Injection

Programmation C. Apprendre à développer des programmes simples dans le langage C

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

HDDtoGO. Guide de l'utilisateur

Les cahiers pratiques de Anonymat.org. SocksCap32. Edition du 20 Octobre 2000

Transcription:

La gestion de version avec Subversion Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) et Synchrotron Soleil (St Aubin)

Architecture client-serveur Serveur Client Revision 1 Makefile src/init.c src/run.c Revision 2 README INSTALL Makefile src/init.c src/run.c Revision 3 README INSTALL Makefile src/init.c src/run.c doc/manual.tex svn update URL du dépôt README 3 INSTALL 3 Makefile 2 src/init.c 2 src/run.c 2 doc/manual.tex 2 Dépôt svn commit Copie de travail

Dépôts Subversion Un dépôt ou un fichier dans un dépôt est spécifié par un URL : schéma://nom:mot_de_passe@domaine:port/chemin/sur/le/serveur Schémas fréquents : http, https: Accès par un serveur Web server (lecture) svn: Accès par un serveur svn svn+ssh: Accès par un tunnel ssh et un serveur svn file: Fichier local Un dépôt local peut être utile pour : - pratiquer (aujourd hui, par exemple) - gérer des fichiers personnels

Copie de travail Une copie de travail est un répertoire sur votre ordinateur. Personne d autre ne peut y accéder. Aucune référence à ce répertoire n est conservée par le serveur. Vous pouvez en faire ce que vous voulez. Une copie de travail contient les fichiers du dépôt et des informations comptables pour Subversion. Ces informations sont stockées dans des répertoires avec le nom.svn (attention au point initial!). Ne touchez pas aux répertoires.svn si vous voulez que Subversion fonctionne correctement!

Fonctionnement de base Apporter une modification à un projet : 1) Récupérer les modifications faites par les autres développeurs: svn update 2) Faites vos modifications (page suivante) 3) Vérifiez vos modifications (page suivante) 4) Enregistrer vos modifications: svn commit -m Voilà ce que j ai fait... Le commentaire ( commit message ) est très important pour les autres développeurs... et pour vous-même quelques mois plus tard!

Modifications Modification du contenu d un fichier : Faites comme vous voulez - Subversion identifie le changement en comparant avec la dernière révision. Rajouter un fichier : svn add <filename> Il faut bien évidement d abord créer le fichier. Ce commande dit à Subversion de le rajouter à la liste des fichiers suivis. Supprimer un fichier : svn delete <filename> Le fichier est supprimé lors du prochain commit. Copier un fichier : svn copy <source...> <destination> Fonctionne comme cp sous Unix, mais retient l historique des fichiers source aussi pour les copies. Renommer un fichier : Identique à svn copy suivi de svn delete. svn move <source...> <destination>

Vérifier les modifications Obtenir une résumé des changements: svn status Montre tous les fichiers modifiés. Une lettre avant le nom du fichier indique la nature du changement : A Ajouté D Supprimé M Modifié? nouveau fichier pas (encore?) rajouté avec svn add! fichier supprimé sans passer par svn Variante: svn status -u Montre aussi les modifications faites dans le dépôt. Modifications du contenu d un fichier : svn diff <filename> Comme diff sous Unix, mais compare le fichier dans la copie de travail avec le même fichier dans la dernière révision dans le dépôt.

Gestion des conflits Scénario qui mène au conflit : - Développeur A récupère la révision X, applique des modifications, et les enregistre, créant ainsi la révision X+1. - Pendant que développeur A travaille, développeur B récupère la révision X et commence à faire des modifications.. - Développeur B tente à enregistrer ses modifications après développeur A. - Subversion constate que développeur B a modifié la révision X et mais que la révision actuelle est X+1. Il vérifie si utilisateur B a modifié un fichier qui a changé entre X et X+1. Si c est le cas, il signale un conflit. Ce que doit faire B pour résoudre le conflit: - Récupérer les modifications de développeur A avec svn update. Subversion tente alors de combiner les modifications de A et B ( merge ). Si ce n est pas possible, il propose à B une liste d actions qui peuvent aider dans la résolution du conflit, par exemple modifier le fichier à la main.

Résumé des commandes svn help <subcommand> Obtenir de la documentation. svn status Voir les changements qui ne sont pas encore enregistrés. svn log Voir un résumé de l historique du dépôt. svn diff Voir les différences entre la copie du travail et la dernière révision enregistrée. svn add <file1> <file2>... Rajouter des nouveaux fichiers à la liste des fichiers sous contrôle de version. svn commit Enregistrer les modifications et créer une nouvelle révision. svn update Mettre à jour la copie locale en intégrant les modifications faites au dépôt.

Exercices

Premiers pas avec un dépôt local 1) Créer un dépôt local: cd mkdir depots svnadmin create depots/tp 2) Créer un repertoire de travail: cd svn checkout file:///home/envol2010/depots/tp cd tp 3) Créer un petit fichier texte dans ce repertoire et le rajouter au dépôt en utilisant svn add et svn commit. 4) Modifier le fichier, vérifier l état du repertoire de travail (svn status), et enregistrer la modification (svn commit). 5) Rajouter un deuxième fichier avec svn add et svn commit. 6) Consulter l historique du dépôt avec svn log. 7)...

Exploration d un dépôt complexe 1) Récupérer une copie de travail du dépôt contenant le code source de Subversion: svn co http://svn.apache.org/repos/asf/subversion/trunk subversion-trunk (On se limite à trunk parce que le dépôt entier est gigantesque!) 2) Utiliser svn log pour savoir qui a fait quand la dernière modification. 3) Utiliser svn diff pour identifier toutes les modifications faites au cours de la dernière semaine.

Gestion des conflits 1) Récupérez une copie de travail du dépôt spécifique à cette séance : svn checkout svn+ssh://khinsen@scm.ljkforge.imag.fr/svnroot/envol2010svn 2) Rajoutez votre au fichier liste_des_participants.txt, en maintenant l ordre alphabétique. 3) Enregistrez votre modification en surveillant des conflits éventuels avec les modifications des autres participants. Faites le nécessaire pour qu aucun nom ne se perde.