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