Mercurial en 10 leçons

Dernière mise à jour le 20 juillet 2009

Le but de ce didacticiel n'est pas de saisir toutes les subtilités de Mercurial, ni même d'en apercevoir les avantages par rapport à (par exemple) Subversion.

Il s'agit juste ici d'expliquer comment utiliser Mercurial d'une manière similaire à Subversion dans une architecture Client-Serveur (ce qui, rappelons-le, n'est pas le but premier d'un DVCS).

Ce didacticiel s'adresse donc à de futurs ex-utilisateurs de Subversion.

Leçon 1 : Récupérer un projet

La commande svn co devient hg clone.

Un clonage s'effectue forcément à la racine d'un projet (pas dans un sous-répertoire) et entraine la copie conforme de celui-ci.
Contrairement à un checkout SVN, un clone Mercurial est strictement identique à l'original, avec toutes les versions intermédiaires.

Leçon 2 : Créer une révision

La commande svn ci devient hg ci.
Il n'y a pas de hg up ou équivalent à faire avant un hg ci.

Attention !
Contrairement à un commit SVN qui est envoyé au serveur (et donc partagé entre tous les contributeurs), un commit Mercurial est effectué en local.

Par conséquent, il est parfaitement possible de commiter du code non fonctionnel (éventuellement avec des régressions), puisque les modifications ne sont visibles que par l'utilisateur local.

Cela permet de versionner son code plus régulièrement au cours du développement en éliminant les trois principaux inconvénients d'un commit SVN : le risque de casser le dépôt, la nécessité de svn up au préalable (long, risque de conflit...), et le temps de l'opération (un commit Mercurial est local, donc instantané).

Leçon 3 : Récupérer des révisions partagées

La commande svn up devient hg fetch.

Cette opération récupère sur le serveur les modifications partagées par tous les contributeurs, et les fusionne avec la version locale.

Avec SVN, aucune action n'était indispensable avant un svn up.
Avec Mercurial, il faut hg ci avant de hg fetch. De cette manière, en cas de conflit lors de la fusion avec la version locale, il y aura toujours une révision commitée contenant les modifications locales.

Leçon 4 : Partager une (ou plusieurs) révisions

Il faut utiliser la nouvelle commande hg push.

Cette manœuvre peut être considérée comme un super commit. Toutes les révisions commitées sont envoyées au serveur (et donc partagées entre tous les contributeurs).

Avec SVN, il faut svn up avant de svn ci.
Avec Mercurial, il faut hg fetch avant de hg push.

Leçon 5 : Commandes qui ne changent pas

Leçon 6 : Commandes qui changent de nom

Leçon 7 : Faux amis

Leçon 8 : Nouvelles commandes

Leçon 9 : Commandes non abordées dans ce didacticiel

Leçon 10 : Rappel important

Comme indiqué au début de ce didacticiel, l'objectif est d'être capable d'utiliser Mercurial rapidement. Par conséquent, les concepts sont simplifiés à l'extrème et très biaisés, et beaucoup de notions importantes (branches, distribution, recherche de bugs par dichotomie...) n'ont même pas été abordées.
N'hésitez pas à lire la documentation de Mercurial pour avoir une vision correcte du fonction et des avantages de ce DVCS.

Retour à la page d'accueil