Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Subversion

Avatar for Nicolas Fabre Nicolas Fabre
September 28, 2011

 Subversion

Utilisation de subversion avec eclipse

Avatar for Nicolas Fabre

Nicolas Fabre

September 28, 2011
Tweet

Other Decks in Technology

Transcript

  1. Subversion : Introduction Système de contrôle de version ✓Outil le

    plus utile pour le développement ✓Permet le travail collaboratif Pourquoi ? ✓Multiplateforme ✓Logiciel libre ✓il est centralisée Fonctionnalités ✓Garde l’historique des différentes versions de fichiers ✓Permets le retour à une version antérieure ✓Garde l’historique des modifications •La nature, la date, l’auteur...￿ ✓Permets à des utilisateurs distincts de travailler sur les mêmes fichiers 3
  2. Définitions : Notions générales Dépôt (repository) ✓Emplacement central où sont

    stockées toutes les données relatives aux projets ✓Accès via l’URL distante •http://alexandrie.groupereflect.net/svn/gr-interne/d2d/ ✓Contient l'historique des versions des fichiers •Les logs enregistrés •Les dates •Les auteurs Révisions ✓Chaque modification faite au dépôt est une révision ✓Le numéro commence à 1 et augmente de 1 à chaque opération ✓Sa valeur n'a aucune importance •C'est un indicateur •Cela permet de revenir à une version X 5
  3. Définitions : Opérations Checkout ✓Consiste à récupérer pour la première

    fois les fichiers existant au sein d'un dépôt ✓Opération faite qu'une seule fois par projet ✓Résultat : une copie de travail Update ✓Synchronisation de la copie de travail avec le dépôt •Récupération de la dernière version des fichiers ✓Instant où les conflits de version peuvent apparaître 6
  4. Définitions : Opérations Commit ✓Mise à jour le dépôt à

    partir de la copie de travail locale ✓Nouvelle révision créée ✓Un commentaire doit être saisi (obligatoire) ✓À noter que pour qu'un commit soit possible •il faut que la copie de travail corresponde à la dernière version du dépôt •Sinon il faut faire un update et de résoudre les conflits Import ✓Place dans le dépôt des fichiers locaux •Import de librairie externe (jquery, zend,...) Export ✓Récupération des fichiers existant au sein d'un dépôt ✓N’est pas une copie de travail 7
  5. Subversion : Commentaires Exemple de mauvais commentaires ✓«Ticket day2day» ✓«Feed»

    ✓«debug» ✓«maintenance» ✓« » 8 Un bon commentaire ✓«Corrige ticket day2day #CDT35 Site web-100211-1110 • gr_form.module : Rajout d’une condition sur la valeur du champ email.... • gr_form.css : Rajout d’un style #block-gr_form-2 pour décaler le bloc 'Try BK' dans page intérieur»
  6. Copier - Modifier - Fusionner Deux utilisateurs copient le même

    fichier 10 Repository Checkout Checkout R1 R1 Alex Jojo R1
  7. Copier - Modifier - Fusionner Chacun édite sa propre copie

    11 Repository R1’ R1’’ Alex Jojo R1
  8. Copier - Modifier - Fusionner Jojo publie sa version en

    premier 12 Repository Commit R2 Alex Jojo R2 R1’
  9. Copier - Modifier - Fusionner Alex veut publier la sienne

    mais reçoit une erreur «périmé» 13 Repository Commit R2 Alex Jojo R2 R1’
  10. Copier - Modifier - Fusionner Alex compare la version la

    plus récente avec la sienne 14 Repository Update R2 Alex Jojo R2 R1’|R2
  11. Copier - Modifier - Fusionner Une nouvelle version fusionnée est

    crée 15 Repository R2 Alex Jojo R2 R2’
  12. Copier - Modifier - Fusionner Les deus utilisateurs ont maintenant

    les changement de l’autre 17 Repository Update R3 Alex Jojo R3 R3
  13. Définitions : Opérations trunk ✓Projet principal ✓Développement d’évolution branche ✓Ligne

    de développement qui existe indépendamment d’autre ✓Partage un historique commun ✓Une branche commence toujours comme une copie de quelque chose, puis poursuit son existence en générant son propre historique tag ✓Définit un instantané du projet dans le temps ✓Une branche qu'on ne modifie jamais ✓Nom plus évident •version-de-prod-1.0 au lieu de révision 4802 19
  14. Création d’une branche pour gérer la phase de retour client

    Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta
  15. Création d’une branche pour gérer la phase de retour client

    Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Création d’un tag pour identifier la révision
  16. Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement

    du projet Livraison Beta Branche : Beta Nouvelle livraison client
  17. Tag : Beta-2010-04-10 Tag : Beta-2010-04-01 Cycle de développement 20

    Temps Trunk Lancement du projet Livraison Beta Branche : Beta Nouvelle livraison client Création d’un tag pour identifier la révision
  18. Tag : Beta-2010-04-10 Tag : Beta-2010-04-01 Cycle de développement 20

    Temps Trunk Lancement du projet Livraison Beta Branche : Beta Développement en parallèle
  19. Récupération des correctifs Tag : Beta-2010-04-10 Tag : Beta-2010-04-01 Cycle

    de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta
  20. Tag : Beta-2010-04-10 Tag : Beta-2010-04-01 Cycle de développement 20

    Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Développement en parallèle
  21. Tag : Beta-2010-04-10 Tag : Beta-2010-04-01 Cycle de développement 20

    Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Récupération des correctifs
  22. Tag : Beta-2010-04-20 Tag : Beta-2010-04-10 Tag : Beta-2010-04-01 Cycle

    de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Récupération des correctifs Création d’un tag pour identifier la révision
  23. Tag : Beta-2010-04-20 Tag : Beta-2010-04-10 Tag : Beta-2010-04-01 Cycle

    de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC
  24. Tag : Beta-2010-04-20 Tag : Beta-2010-04-10 Tag : Beta-2010-04-01 Cycle

    de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Création d’une branche pour gérer la phase de retour client
  25. Tag : Beta-2010-04-20 Tag : Beta-2010-04-10 Tag : Beta-2010-04-01 Cycle

    de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod
  26. Création d’une branche pour identifier la version en prod Tag

    : Beta-2010-04-20 Tag : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod
  27. Création d’une branche pour identifier la version en prod Tag

    : Beta-2010-04-20 Tag : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Création d’un tag pour identifier la révision
  28. Tag : Beta-2010-04-20 Tag : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche

    : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod
  29. Tag : Beta-2010-04-20 Tag : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche

    : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Traitement de ticket par le d2d
  30. Tag : Beta-2010-04-20 Tag : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche

    : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Livraison de tickets
  31. Tag : Beta-2010-04-20 Tag : Prod-2010-06-17 Tag : Prod-2010-05-02 Tag

    : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Livraison de tickets Création d’un tag pour identifier la révision
  32. Création d’une branche pour traiter une grosse évolution Branche :

    Prod-Big-Evol Tag : Beta-2010-04-20 Tag : Prod-2010-06-17 Tag : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Livraison de tickets
  33. Branche : Prod-Big-Evol Tag : Beta-2010-04-20 Tag : Prod-2010-06-17 Tag

    : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Livraison de tickets Traitement de ticket par le d2d Développement en parallèle
  34. Inclusion de l’évolution dans le version courante Branche : Prod-Big-Evol

    Tag : Beta-2010-04-20 Tag : Prod-2010-06-17 Tag : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Livraison de tickets
  35. Branche : Prod-Big-Evol Tag : Beta-2010-04-20 Tag : Prod-2010-06-17 Tag

    : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Livraison de tickets Lancement version 2.0
  36. Branche : Prod-Big-Evol Tag : Beta-2010-04-20 Tag : Prod-2010-06-17 Tag

    : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Livraison de tickets Lancement version 2.0 Livraison de tickets
  37. Tag : Prod-2010-10-15 Branche : Prod-Big-Evol Tag : Beta-2010-04-20 Tag

    : Prod-2010-06-17 Tag : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Livraison de tickets Lancement version 2.0 Livraison de tickets Création d’un tag pour identifier la révision
  38. Tag : Prod-2010-10-15 Branche : Prod-Big-Evol Tag : Beta-2010-04-20 Tag

    : Prod-2010-06-17 Tag : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Livraison de tickets Lancement version 2.0 Livraison de tickets
  39. Tag : Prod-2010-12-23 Tag : Prod-2010-10-15 Branche : Prod-Big-Evol Tag

    : Beta-2010-04-20 Tag : Prod-2010-06-17 Tag : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Livraison de tickets Lancement version 2.0 Livraison de tickets Création d’un tag pour identifier la révision
  40. Tag : Prod-2010-12-23 Tag : Prod-2010-10-15 Branche : Prod-Big-Evol Tag

    : Beta-2010-04-20 Tag : Prod-2010-06-17 Tag : Prod-2010-05-02 Tag : Beta-2010-04-10 Branche : Prod Tag : Beta-2010-04-01 Cycle de développement 20 Temps Trunk Lancement du projet Livraison Beta Branche : Beta Fin des retours Livraison RC Mise en Prod Livraison de tickets Lancement version 2.0 Livraison de tickets Vie au day2day
  41. Eclipse PDT : Subversive Eclipse PDT ✓Editeur de code basé

    sur Eclipse ✓ Orienté développement Web (PHP) Subversive ✓Plugin d’Eclipse ✓Client graphique pour Subversion 22
  42. Navigation dans le projet Url du projet sur leSVN Ajout

    d’un repository Subversive : Ajout d’un repository 23
  43. Subversive: Fusion de trunk/branche 29 (merge) On veut récupérer les

    correctifs de la branche «beta» et les intégrer dans «trunk»
  44. Subversive : Création d’un patch 31 On veut récupérer les

    différences entre la version de prod et la version de «trunk»
  45. Patch : Explication 32 Numéro de révision du fichier de

    référence Nouveau numéro de révision Numéro de révision à 0 indique un nouveau fichier
  46. Patch : Explication 32 Fichier concerné Ligne supprimée Lignes ajoutés

    Numéro de révision du fichier de référence Nouveau numéro de révision Numéro de révision à 0 indique un nouveau fichier