Programs that work with monotone -- interfaces, frontends and tools

standalone clients

plugins for popular frontends

  • TracMonotone: A version control system plugin for Trac a popular integrated history browser/wiki/bug tracker. Latest stable/development version.
  • Ikiwiki is a wiki that can use a revision control system, and in particular monotone, as a backend. As Monotone is distributed, Ikiwiki becomes distributed. Ikiwiki also has a bug tracking plugin that then allows distributed bug tracking. This website is generated with ikiwiki, edited by the distributed monotone developers.

integrated development environments

  • PIDA: Integrated development environment supporting Monotone (among others)
  • Eclipse: Well known, extremely pluggable IDE. There was done some work on a monotone plugin called MTTeam, but this hasn't seen any activity over the last couple of years. The mailinglist is here, and this is the current code base.
  • Emacs integration:
    • monotone.el: In contrib/ directory of monotone's source tree. Latest version.
    • DVC (see also DVC) is a project to create a generic library for fancy Emacs interfaces to modern version control systems. DVC includes monotone support. The primary repository is in bzr; a monotone repository is at mtn://www.ada-france.org?org.emacs.dvc.

libraries and scripts

  • Monotone::AutomateStdio: A Perl library for interfacing with Monotone via its automate stdio interface. Latest version.
  • shell completion: monotone ships with completion scripts for both bash and zsh, in the contrib/ directory of monotone's source tree. Latest versions for bash and zsh.
  • "dumb server" support, for publishing repositories via ordinary ftp/http/sftp/local filesystem: in branch net.venge.monotone.dumb.
  • monotone-notify.pl: A script to watch a monotone repository and, for example, send emails on commits. In contrib/ directory of monotone's source tree. Latest version.
  • ciabot_monotone.py: A notification script for CIA. In contrib/ directory of monotone's source tree. Latest version.
  • Script for importing maildir-format mailboxes to monotone, for offline reading and syncing: on the list.

conversion tools

  • CVS: no external tool required or recommended; simply use monotone's cvs_import command. See MonotoneAndCVS.
  • Subversion, Darcs, many others: Tailor is an any-to-any version control system converter, with support for most free VCSes. Note that as of July 2007, histories are linearized on the timestamp (so don't expect it to losslessly convert between systems with DAG histories, like monotone/git/mercurial/bzr, for instance).
  • Bitkeeper: A patch and set of scripts for lossless BK->monotone conversion is available on the mailing list: http://lists.gnu.org/archive/html/monotone-devel/2006-01/msg00314.html

merge tools

When you do a merge in monotone, and run into conflicts, it will automatically start up a nice graphical merger for you to resolve them in. These mergers (and possibly others) are supported out of the box.

  • diffuse: Supported on all platforms on which Python runs. diffuse also integrates monotone so you can quickly and directly diff and inspect monotone revisions. (recommended)
  • KDiff3: Supported on Unix, Windows, OS X. (recommended)
  • xxdiff: Supported on Unix, maybe OS X. (recommended)
  • TortoiseMerge: Supported on Windows. This is a stand-alone merge program that happens to be packaged with TortoiseSVN -- so you have to install the whole TortoiseSVN package, but you will only use TortoiseMerge. (recommended)
  • emacs/xemacs: via Ediff. Supported pretty much everywhere.
  • vim: via vimdiff. Supported pretty much everywhere.
  • meld: A general diff, merge, and history browsing tool written in Python for Gnome. Has monotone support since 1.1.3.
  • FileMerge.app: Part of the OS X Developer Tools package. Supported on OS X.

Programs that once worked with monotone, but are a now outdated, unmaintained or have no support for more recent versions

  • Qct is a commit tool that supports quite a few revision control systems, monotone was once one of them, but is now unmaintained
  • mtsh: GTK+ wrapper for monotone focusing on working copy operations -- add, drop, revert, rename, commit, update, diff, and browsing. Has a mechanism for per-file commit comments. Largely unmaintained.
  • m7 (former URL: http://www.midwinter.com/~lch/programming/m7/): Experimental drop-in command-line wrapper for monotone. Added simple local version numbers (no longer using certs) and an enhanced annotate front-end.
  • monotree: Java app for browsing and visualizing history; more portable than monotone-viz. In branch net.venge.monotone.contrib.monotree.
  • RSCM::Monotone: a Ruby interface to monotone, project largely unmaintained
  • Wireshark: a fantastic network traffic analyzer, that has some support for decoding monotone's 'netsync' protocol, but unfortunately its not quite up-to-date.
  • Monotree: A .NET based viewer for monotone's database (does not require to have monotone installed as it loads monotone's database directly and creates a report).
  • Apso: A system for encrypting version control system repositories/databases (currently a prototype; the first version control system supported is Monotone).

Programs that don't exist at all, but if they did they would make using monotone just that much more awesome

  • tools to manage code reviews, integration workflows, and such things
  • "Tortoise Monotone" -- a windows interface to monotone, integrated with the file explorer. This approach works very well for subversion...
  • mtnpatch, a small, standalone, slightly smarter version/wrapper of patch(1) that understands and can apply the additional cset operations (eg, drop and rename) listed in mtn diff comments. Useful for end-users tracking monotone sources without actually using monotone or a db. Bonus points for a mtnfollow that combines this patch tool with a web client to fetch diffs as needed from ViewMTN, and keeps a _MTN directory up to date so its easy for a user to switch to using full monotone once they need it (eg, for local changes).
  • A Visual Studio plugin for monotone.
  • A working Eclipse plugin for monotone.
  • A plugin for Xcode, the Apple Mac OS X IDE.
  • A plugin for QtCreator, the Qt/C++ IDE from Nokia.
  • your wished-for tool here