Similarities

  • distributed, so each clone has fully history
  • works on multiple platforms, ie. Windows, Linux, BSD
  • can create a new revision from any revision at any time (lightweight branches)
  • allows customisation globally or per workspace. monotone=monotonerc, Mercurial=hgrc
  • allows pushing/pulling/cloning with ssh

Differences

  • monotone does not give each revision a sequential integer ID, Mercurial does
  • monotone uses certs for core functionality such as branch membership, author, etc
  • monotone allows adding certs on revision for custom user information. eg. x-our-bug-id = #567
  • monotone certs are cryptographically signed
  • monotone certs + trust hooks can be used to ignore revisions
  • tags in monotone are certs, in Mercurial they are stored in a .hgtags file which must be merged if necessary
  • monotone history is stored in an SQLite database file and can be located anywhere. Mercurial history is stored in a .hg folder inside the workspace.
  • monotone does not use branch/author/date to calculate revision ID, Mercurial does. This means merging the same 2 revisions to produce the same result gives the same revision in monotone, Mercurial gives different revisions.
  • monotone tracks renames explicitly, Mercurial uses add+remove
Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status