doc/book/en/21-05-mercurial.en.txt
changeset 104 8a62d2db3392
parent 98 f756ead5746a
child 105 300166b41ea9
equal deleted inserted replaced
103:9f9ae864d0cc 104:8a62d2db3392
       
     1 .. -*- coding: utf-8 -*-
       
     2 
       
     3 .. _Mercurial:
       
     4 
       
     5 Présentation de Mercurial
       
     6 -------------------------
       
     7 
       
     8 Introduction
       
     9 ````````````
       
    10 Mercurial_ gère un ensemble distribué d'entrepôts contenant des arbres de
       
    11 révisions (chaque révision indique les changements à effectuer pour obtenir la
       
    12 version suivante, et ainsi de suite). Localement, on dispose d'un entrepôt
       
    13 contenant un arbre de révisions, et d'un répertoire de travail. Il est possible
       
    14 de mettre dans son répertoire de travail, une des versions issue de son entrepôt
       
    15 local, de la modifier puis de la verser dans son entrepôt. Il est également
       
    16 possible de récuprer dans son entrepôt local des révisions venant d'un autre
       
    17 entrepôt, ou d'exporter ses propres révisions depuis son entrepôt local vers un
       
    18 autre entrepôt.
       
    19 
       
    20 A noter que contrairement à CVS/Subversion, on crée généralement un entrepôt par
       
    21 projet à gérer.
       
    22 
       
    23 Lors d'un développement collaboratif, on crée généralement un entrepôt central
       
    24 accessible à tout les développeurs du projet. Ces entrepôts centraux servent de
       
    25 référence. Selon ses besoins, chacun peut ensuite disposer d'un entrepôt local,
       
    26 qu'il faudra penser à synchroniser avec l'entrepôt central de temps à autre. 
       
    27 
       
    28 
       
    29 Principales commandes
       
    30 `````````````````````
       
    31 * Créer un entrepôt local ::
       
    32 
       
    33     hg clone ssh://orion//home/src/prive/rep
       
    34 
       
    35 * Voir le contenu de l'entrepôt local (outil graphique en Tk) ::
       
    36 
       
    37     hg view
       
    38 
       
    39 * Ajouter un sous-répertoire ou un fichier dans le répertoire courant ::
       
    40 
       
    41     hg add rep
       
    42 
       
    43 * Placer dans son répertoire de travail une révision spécifique (ou la dernière
       
    44   revision) issue de l'entrepôt local ::
       
    45 
       
    46     hg update [identifiant-revision]
       
    47     hg up [identifiant-revision]
       
    48 
       
    49 * Récupérer dans son entrepôt local, l'arbre de révisions contenu dans un
       
    50   entrepôt distant (cette opération ne modifie pas le répertoire local) ::
       
    51 
       
    52     hg pull ssh://orion//home/src/prive/rep
       
    53     hg pull -u ssh://orion//home/src/prive/rep # équivalent à pull + update
       
    54 
       
    55 * Voir quelles sont les têtes de branches de l'entrepôt local si un `pull` a
       
    56   tiré une nouvelle branche ::
       
    57 
       
    58     hg heads
       
    59 
       
    60 * Verser le répertoire de travail dans l'entrepôt local (et créer une nouvelle
       
    61   révision) ::
       
    62 
       
    63     hg commit
       
    64     hg ci
       
    65 
       
    66 * Fusionner, avec la révision mère du répertoire local, une autre révision issue
       
    67   de l'entrepôt local (la nouvelle révision qui en résultera aura alors deux
       
    68   révisions mères) ::
       
    69 
       
    70     hg merge identifiant-revision
       
    71 
       
    72 * Exporter dans un entrepôt distant, l'arbre de révisions contenu dans son
       
    73   entrepôt local (cette opération ne modifie pas le répertoire local) ::
       
    74 
       
    75     hg push ssh://orion//home/src/prive/rep
       
    76 
       
    77 * Voir quelle sont les révisions locales non présentes dans un autre entrepôt ::
       
    78 
       
    79     hg outgoing ssh://orion//home/src/prive/rep
       
    80 
       
    81 * Voir quelle sont les révisions d'un autre entrepôt non présentes localement ::
       
    82 
       
    83     hg incoming ssh://orion//home/src/prive/rep
       
    84 
       
    85 * Voir quelle est la révision issue de l'entrepôt local qui a été sortie dans le
       
    86   répertoire de travail et modifiée ::
       
    87 
       
    88     hg parent
       
    89 
       
    90 * Voir les différences entre le répertoire de travail et la révision mère de
       
    91   l'entrepôt local, éventuellement permettant de les verser dans l'entrepôt
       
    92   local ::
       
    93 
       
    94     hg diff
       
    95     hg commit-tool
       
    96     hg ct
       
    97 
       
    98 
       
    99 Bonnes pratiques
       
   100 ````````````````
       
   101 * penser à faire un `hg pull -u` régulièrement et particulièrement avant de
       
   102   faire un `hg commit`
       
   103 
       
   104 * penser à faire un `hg push` lorsque votre entrepôt contient une version
       
   105   relativement stable de vos modifications
       
   106 
       
   107 * si un `hg pull -u` a créé une nouvelle tête de branche :
       
   108 
       
   109   1. identifier l'identifiant de celle-ci avec `hg head`
       
   110   2. fusionner avec `hg merge`
       
   111   3. `hg ci`
       
   112   4. `hg push`
       
   113 
       
   114 .. _Mercurial: http://www.selenic.com/mercurial/