Par Anonyme (non vérifié) , 29 avril 2026

Deux lignées de conception

La CLI de Git a émergé organiquement. La CLI de Mercurial a été conçue top-down par Matt Mackall.

Cohérence des commandes

Mercurial utilise verbe-nom de manière cohérente. Les options sont cohérentes : -r signifie toujours révision, -m toujours message.

Texte d'aide

hg help commit         # focalisé, court, pertinent
git help commit         # page de manuel exhaustive

Messages d'erreur

Mercurial est célèbre pour ses erreurs plus amicales.

Défauts sûrs

Les commandes Mercurial détruisent rarement les données sans extension explicite.

Sortie de status

# Mercurial : minimal, compréhensible
hg status
M src/checkout.js
A src/payment.js
? notes.txt

# Git : plus d'états, plus chargé
git status

Commandes de branching

# Mercurial : branches conceptuellement lourdes
hg branch feature/login
hg commit -m "Start"

# Mercurial : bookmarks pour branching style Git
hg bookmark feature
hg commit -m "Start"

# Git
git checkout -b feature/login
git commit -m "Start"

Réécriture d'historique

Git : git rebase -i, intégré, sans opt-in. Mercurial : hg histedit, nécessite l'activation de l'extension.

Hooks et extensions

Les extensions Mercurial se branchent proprement via Python. Les hooks Git sont des scripts shell.

Tab completion

Les deux livrent des completions pour les shells principaux.

Le coût de la non-familiarité

Pour quelqu'un fluent en Git, les commandes renommées de Mercurial semblent restrictives.

Améliorations modernes

Git a réduit l'écart UX avec de meilleurs messages d'erreur, switch et restore, partial clone.