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