diff -r 000000000000 -r b97547f5f1fa goa/doc/devmanual_fr/sect_mercurial.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/goa/doc/devmanual_fr/sect_mercurial.txt Wed Nov 05 15:52:50 2008 +0100 @@ -0,0 +1,110 @@ +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/