goa/doc/devmanual_fr/sect_mercurial.txt
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Fri, 26 Feb 2010 15:32:32 +0100 (2010-02-26)
branchstable
changeset 4729 6267f9c3bfbd
parent 0 b97547f5f1fa
permissions -rw-r--r--
3.6.1
Pr�sentation de Mercurial
-------------------------

Introduction
````````````
Mercurial_ g�re un ensemble distribu� d'entrep�ts contenant des arbres de
r�visions (chaque r�vision indique les changements � effectuer pour obtenir la
version suivante, et ainsi de suite). Localement, on dispose d'un entrep�t
contenant un arbre de r�visions, et d'un r�pertoire de travail. Il est possible
de mettre dans son r�pertoire de travail, une des versions issue de son entrep�t
local, de la modifier puis de la verser dans son entrep�t. Il est �galement
possible de r�cuprer dans son entrep�t local des r�visions venant d'un autre
entrep�t, ou d'exporter ses propres r�visions depuis son entrep�t local vers un
autre entrep�t.

A noter que contrairement � CVS/Subversion, on cr�e g�n�ralement un entrep�t par
projet � g�rer.

Lors d'un d�veloppement collaboratif, on cr�e g�n�ralement un entrep�t central
accessible � tout les d�veloppeurs du projet. Ces entrep�ts centraux servent de
r�f�rence. Selon ses besoins, chacun peut ensuite disposer d'un entrep�t local,
qu'il faudra penser � synchroniser avec l'entrep�t central de temps � autre. 


Principales commandes
`````````````````````
* Cr�er un entrep�t local ::

    hg clone ssh://orion//home/src/prive/rep

* Voir le contenu de l'entrep�t local (outil graphique en Tk) ::

    hg view

* Ajouter un sous-r�pertoire ou un fichier dans le r�pertoire courant ::

    hg add rep

* Placer dans son r�pertoire de travail une r�vision sp�cifique (ou la derni�re
  revision) issue de l'entrep�t local ::

    hg update [identifiant-revision]
    hg up [identifiant-revision]

* R�cup�rer dans son entrep�t local, l'arbre de r�visions contenu dans un
  entrep�t distant (cette op�ration ne modifie pas le r�pertoire local) ::

    hg pull ssh://orion//home/src/prive/rep
    hg pull -u ssh://orion//home/src/prive/rep # �quivalent � pull + update

* Voir quelles sont les t�tes de branches de l'entrep�t local si un `pull` a
  tir� une nouvelle branche ::

    hg heads

* Verser le r�pertoire de travail dans l'entrep�t local (et cr�er une nouvelle
  r�vision) ::

    hg commit
    hg ci

* Fusionner, avec la r�vision m�re du r�pertoire local, une autre r�vision issue
  de l'entrep�t local (la nouvelle r�vision qui en r�sultera aura alors deux
  r�visions m�res) ::

    hg merge identifiant-revision

* Exporter dans un entrep�t distant, l'arbre de r�visions contenu dans son
  entrep�t local (cette op�ration ne modifie pas le r�pertoire local) ::

    hg push ssh://orion//home/src/prive/rep

* Voir quelle sont les r�visions locales non pr�sentes dans un autre entrep�t ::

    hg outgoing ssh://orion//home/src/prive/rep

* Voir quelle sont les r�visions d'un autre entrep�t non pr�sentes localement ::

    hg incoming ssh://orion//home/src/prive/rep

* Voir quelle est la r�vision issue de l'entrep�t local qui a �t� sortie dans le
  r�pertoire de travail et modifi�e ::

    hg parent

* Voir les diff�rences entre le r�pertoire de travail et la r�vision m�re de
  l'entrep�t local, �ventuellement permettant de les verser dans l'entrep�t
  local ::

    hg diff
    hg commit-tool
    hg ct


Bonnes pratiques
````````````````
* penser � faire un `hg pull -u` r�guli�rement et particuli�rement avant de
  faire un `hg commit`

* penser � faire un `hg push` lorsque votre entrep�t contient une version
  relativement stable de vos modifications

* si un `hg pull -u` a cr�� une nouvelle t�te de branche :

  1. identifier l'identifiant de celle-ci avec `hg head`
  2. fusionner avec `hg merge`
  3. `hg ci`
  4. `hg push`

.. _Mercurial: http://www.selenic.com/mercurial/