Mercurial
       pour le programmeur de garage

    Hg – the chemical symbol for the element
     mercury
    Mercurial ...
Qui suis-je? Qui êtes-vous?

    Étudiant à l'UdeS, 2e année
    Mon passé avec PHP Québec
    Qui a déjà utilisé un SC...
Plan de présentation

    SCV Centralisé
    SCV Distribué
        Avantages et Inconvénients
    Différents SCVD
   ...
SCV Centralisé
    Serveur central
    Sauvegarde = Check In (commit)
    Désavantages (branches/merges)

     Exemples...
SCV Distribué

    Chaque repo connait l'historique
    On parle d'équivalence




Maxime Dupuis      mdupuis@autre-chos...
Avantages

    Facile de gérer les branches et les merges
    Repo local, toujours disponible
    Rapide et peu coûteux...
Inconvénients

    Façon différente de travailler
    Besoin de convention (qui est le maître?)
    Pas aussi développé...
Différents SCVD

    Git -- Linus Torvalds
    Bazaar -- Canonical
    Mercurial -- Matt Mackall




Maxime Dupuis     ...
Git

    Écrit en C
    le plus rapide
    Projets : Kernel linux, OLPC, RoR, projets Ruby
    Hébergement : GitHub.co...
Bazaar

    Écrit en Python
    le moins rapide
    Projets : Ubuntu, Drupal, Drizzle
    Hébergement : LaunchPad.net
...
Mercurial

    Écrit en Python
    Relativement rapide, léger
    Projets : Mozilla, Netbeans, projets Python
    Hébe...
Concepts

    Révision : changements groupés
        Consiste en un numéro et un ID unique
        ex.: changeset: 0:8f...
Commandes

    clone : permet de cloner un repo
    add        : ajoute un fichier au repo
    remove : supprime un fic...
Commandes



                   Exemple!




Maxime Dupuis   mdupuis@autre-chose.org
Commandes supplémentaires

    diff: affiche les changements (format patch)
    revert : efface les changements effectué...
Commandes supplémentaires (2)

    bundle     : exporte un groupe de révisions format binaire
    unbundle : importe un ...
Commandes supplémentaires



                  Exemples?




Maxime Dupuis   mdupuis@autre-chose.org
Outils

    Plugiciel pour Eclipse
    TortoiseHG (Windows seulement)
    Conversion
        Hgsvn : migrer ou gérer u...
Hgsvn
    http://pypi.python.org/pypi/hgsvn

    hgimportsvn : importe un repo SVN depuis la
     révision 0 (loooooong....
Extensions

    glog, hgk/hgview : pour visualiser l'arbre de
     révisions
    mq : patch queue (Git) – gestionnaire d...
mq

    qinit : initialise la queue
    qclone : clone un repo mq
    qnew : crée un nouveau patch
    qdiff : même ch...
mq



                  Exemples?




Maxime Dupuis   mdupuis@autre-chose.org
Forest

       Configuration
               Installation
               paramétrisation



       Commandes
         ...
Forest



                   Exemple!




Maxime Dupuis   mdupuis@autre-chose.org
Questions? Commentaires?

    RTFM : http://selenic.com/mercurial/wiki
    Pour la présentation : Autre-Chose.org
    M...
Prochain SlideShare
Chargement dans…5
×

Mercurial - PHPQuebec - December 08

1 484 vues

Publié le

Mercurial pour le programmeur de garage.

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 484
Sur SlideShare
0
Issues des intégrations
0
Intégrations
32
Actions
Partages
0
Téléchargements
6
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Mercurial - PHPQuebec - December 08

  1. 1. Mercurial pour le programmeur de garage  Hg – the chemical symbol for the element mercury  Mercurial (adj) relating to or having characteristics attributed to the god Mercury Maxime Dupuis mdupuis@autre-chose.org
  2. 2. Qui suis-je? Qui êtes-vous?  Étudiant à l'UdeS, 2e année  Mon passé avec PHP Québec  Qui a déjà utilisé un SCV?  SCVD? Maxime Dupuis mdupuis@autre-chose.org
  3. 3. Plan de présentation  SCV Centralisé  SCV Distribué  Avantages et Inconvénients  Différents SCVD  Certains concepts de base  Les commandes (avec exemples!)  Outils (avec exemples?)  Extensions (avec exemples?) Maxime Dupuis mdupuis@autre-chose.org
  4. 4. SCV Centralisé  Serveur central  Sauvegarde = Check In (commit)  Désavantages (branches/merges) Exemples de SCV : SVN, CVS Maxime Dupuis mdupuis@autre-chose.org
  5. 5. SCV Distribué  Chaque repo connait l'historique  On parle d'équivalence Maxime Dupuis mdupuis@autre-chose.org
  6. 6. Avantages  Facile de gérer les branches et les merges  Repo local, toujours disponible  Rapide et peu coûteux en ressources  Accès à l'historique (ex.: renommer un fichier)  Dossier .hg à la racine Maxime Dupuis mdupuis@autre-chose.org
  7. 7. Inconvénients  Façon différente de travailler  Besoin de convention (qui est le maître?)  Pas aussi développé (SCV, outils, etc.)  Lequel choisir? Maxime Dupuis mdupuis@autre-chose.org
  8. 8. Différents SCVD  Git -- Linus Torvalds  Bazaar -- Canonical  Mercurial -- Matt Mackall Maxime Dupuis mdupuis@autre-chose.org
  9. 9. Git  Écrit en C  le plus rapide  Projets : Kernel linux, OLPC, RoR, projets Ruby  Hébergement : GitHub.com  Comple(t|xe) Maxime Dupuis mdupuis@autre-chose.org
  10. 10. Bazaar  Écrit en Python  le moins rapide  Projets : Ubuntu, Drupal, Drizzle  Hébergement : LaunchPad.net  Similaire à SVN  Beaucoup de révisions, change souvent Maxime Dupuis mdupuis@autre-chose.org
  11. 11. Mercurial  Écrit en Python  Relativement rapide, léger  Projets : Mozilla, Netbeans, projets Python  Hébergement : FreeHG.org, Intuxication (fr)  Similaire à SVN Maxime Dupuis mdupuis@autre-chose.org
  12. 12. Concepts  Révision : changements groupés  Consiste en un numéro et un ID unique  ex.: changeset: 0:8fc598890cdd4  Branche : 2 têtes pouvant être combinées  Même révision parente à la base  Pas nécessairement 2 lignes de développement (2 repos)  Un fichier de configuration par repo, un pour l'usager, et un global à mercurial Maxime Dupuis mdupuis@autre-chose.org
  13. 13. Commandes  clone : permet de cloner un repo  add : ajoute un fichier au repo  remove : supprime un fichier du repo  log : affiche l'historique du repo  status: visualisation globale des changements  commit : sauvegarde les changements, crée une révision  push/pull : échange des révisions avec un autre repo  update/merge : mets à jour les fichiers locaux/combine 2 branches  fetch : même chose que pull → update → merge Maxime Dupuis mdupuis@autre-chose.org
  14. 14. Commandes Exemple! Maxime Dupuis mdupuis@autre-chose.org
  15. 15. Commandes supplémentaires  diff: affiche les changements (format patch)  revert : efface les changements effectués à un fichier  rollback : même chose que `revert *`  incoming/outgoing : différence entre 2 repos  serve : dessert une interface web  tag : attache un nom (ex.: ”v1.0”) à une révision  tags : liste les ”tags” Maxime Dupuis mdupuis@autre-chose.org
  16. 16. Commandes supplémentaires (2)  bundle : exporte un groupe de révisions format binaire  unbundle : importe un fichier de révisions binaire  export : exporter une révision format patch  strip : retire les révisions du repo  import : importe un patch en tant que révision  annotate : montre les lignes d'un fichier avec no de révision  Utile si combiné à la commande log Maxime Dupuis mdupuis@autre-chose.org
  17. 17. Commandes supplémentaires Exemples? Maxime Dupuis mdupuis@autre-chose.org
  18. 18. Outils  Plugiciel pour Eclipse  TortoiseHG (Windows seulement)  Conversion  Hgsvn : migrer ou gérer un dépôt SVN avec mercurial  Autres : GitConversion, extension Convert (Darcs, CVS), Tailor (bzr)  hgk/hgview : GUI pour la commande log  Meld : GUI pour faciliter la combinaison de 2 révisions lors de conflits Maxime Dupuis mdupuis@autre-chose.org
  19. 19. Hgsvn  http://pypi.python.org/pypi/hgsvn  hgimportsvn : importe un repo SVN depuis la révision 0 (loooooong...!)  ex.: hgimportsvn http://domain.tld/repo target-folder  Si migration : `find . -name '.svn' | xargs rm -r` dans ”target-folder”  hgpullsvn : importe les nouvelles révisions dans mercurial Maxime Dupuis mdupuis@autre-chose.org
  20. 20. Extensions  glog, hgk/hgview : pour visualiser l'arbre de révisions  mq : patch queue (Git) – gestionnaire de patches  Forest : gérer un arborescence de repos  Utile pour gérer un repo comprenant mq  Maintenue par Simon Law Maxime Dupuis mdupuis@autre-chose.org
  21. 21. mq  qinit : initialise la queue  qclone : clone un repo mq  qnew : crée un nouveau patch  qdiff : même chose que diff  qrefresh : met à jour le contenu de la patch courrante  qcommit : soumet le patch  qtop, qseries : affiche le patch courrant, les patches  qpop, qpush : applique ou dé-applique une patch  qgoto : se déplacer dans la queue de patches Maxime Dupuis mdupuis@autre-chose.org
  22. 22. mq Exemples? Maxime Dupuis mdupuis@autre-chose.org
  23. 23. Forest  Configuration  Installation  paramétrisation  Commandes  f* (où * est le nom d'une commande hg) Maxime Dupuis mdupuis@autre-chose.org
  24. 24. Forest Exemple! Maxime Dupuis mdupuis@autre-chose.org
  25. 25. Questions? Commentaires?  RTFM : http://selenic.com/mercurial/wiki  Pour la présentation : Autre-Chose.org  Me rejoindre : mdupuis@autre-chose.org Merci! Maxime Dupuis mdupuis@autre-chose.org

×