Mercurial

Mercurial est un Système de Gestion de Versions. Il entre dans le trio de tête des SCM (Software configuration management) les plus utilisés avec Subversion(svn) et git.
hg
Il fait partie des systèmes de gestion décentralisée, voir la fiche complète sur Wikipédia - Mercurial.
La documentation officielle
Le wiki de Selenic.com - Mercurial
Le livre, Mercurial : The Definitive Guide
Un site un peu plus sexy est en préparation Mercurial SCM
La documentation française
La catégorie CategoryFrench sur le wiki officiel
Un cookbook en français sur Mercurial - Adrien Herubel
Quelques rappels pour les développeurs Mozilla, mais c’est valable pour tout le monde ! Les bases de Mercurial - MDC
Introduction à Mercurial - developpez.com
Howto Mercurial : Petit guide de survie de la gestion de version
Sur les blogs francophones :
Tag - Mercurial - ka.da
Introduction à Mercurial - developpez.com
Autres documentations
Hg Init : a Mercurial tutorial by Joel Spolsky Magnifiquement illustré.
hébergement
bitbucket.org offre un hébergement de dépôt Mercurial associé à un wiki et un système de gestion de bug. (à la trac)
Une liste d’hébergements est disponible sur le wiki officiel : MercurialHosting - Mercurial

- logo mercurial
Trucs et astuces
Récupérer une partie d’un dépôt
Lorsque l’on regroupe dans un dépôt beaucoup de petits scripts, il arrive parfois que l’un de ceux-ci grandisse et devienne un projet à part entière. Il lui faut alors son propre dépôt. Mais comment garder l’historique ?
C’est en fait l’extension convert qui permet cela, grâce à ses possibilités de filtrage et de la conversion depuis un dépôt mercurial en plus des autres principaux SCM.
La documentation :
ConvertExtension - Mercurial
Appendix A. Migrating to Mercurial
Voir les modifications de façon graphique
hg diff monfichier c’est bien mais parfois voir ces modifications dans un outil graphique comme KDiff3, WinMerge, etc. c’est mieux.
C’est possible avec l’extension extdiff incluse par défaut dans Mercurial. Il faut bien sûr l’activer dans le fichier de configuration Mercurial (.hgrc ou Mercurial.ini)
Voir la documentation complète dans le hgbook, « Chapter 14. Adding functionality with extensions, Flexible diff support with the extdiff extension »
Annuler les modifications faites localement à un fichier
On peut être tenté de faire hg update ., mais si un fichier a été modifié, il n’est pas touché.
hg update -C . ? Ne le faites pas ! En fait ( lisez bien la doc hg update ) hg update fonctionne sur le dépôt entier et donc écraserai toutes les modifications en cours alors qu’on ne veut écraser que celle d’un fichier ou du répertoire courant ...
La solution est en fait hg revert . La doc : hg revert