Due lignaggi di design
La CLI di Git e emersa organicamente. Quella di Mercurial e stata progettata top-down.
Coerenza dei comandi
Mercurial usa verbo-sostantivo coerentemente. I verbi di Git si sovrappongono.
Testo di aiuto
hg help commit
git help commit
Messaggi di errore
Mercurial ha errori notoriamente piu amichevoli.
Default sicuri
I comandi Mercurial raramente distruggono dati senza un'estensione esplicita.
Output di status
# Mercurial: minimal, comprehensible
hg status
M src/checkout.js
A src/payment.js
? notes.txt
# Git: more states, busier
git status
Comandi di branching
# Mercurial: branches are conceptually heavyweight
hg branch feature/login
hg commit -m "Start"
# Mercurial: bookmarks for Git-like branching
hg bookmark feature
hg commit -m "Start"
# Git
git checkout -b feature/login
git commit -m "Start"
Riscrittura storia
Git: git rebase -i, integrato. Mercurial: hg histedit, richiede di abilitare l'estensione.
Hook ed estensioni
Le estensioni Mercurial si plugano in pulitamente via Python.
Tab completion
Entrambi spediscono completion per le shell maggiori.
Il costo della non familiarita
Per qualcuno fluente in Git, i comandi rinominati di Mercurial e le estensioni gateate sembrano restrittivi.
Miglioramenti moderni
Git ha ridotto il gap UX con messaggi di errore migliori, switch e restore.