- Other programs that work with monotone -- interfaces, frontends and tools
- Integrated development environments
- Other programs that should be taught to work with monotone, but haven't been
- Other programs that don't exist at all, but if they did they would make using monotone just that much more awesome
Other programs that work with monotone -- interfaces, frontends and tools
interfaces and tools
- monotone-viz : GTK+ app for browsing and visualizing history
- ViewMTN: a web interface to a monotone repository.
- guitone: A Qt-based, cross-platform frontend for monotone. Latest version (via viewmtn).
- mtn-browse: A Perl/Gtk2 based graphical database browser for Monotone (requires no workspace). State: Beta (stable). Latest development version (via viewmtn).
- TracMonotone: A version control system plugin for Trac a popular integrated history browser/wiki/bug tracker. Latest stable/development version.
- Usher: A server manager that can be used to
serve several projects on the same IP/port, starting and stopping
servers as needed. In branch
net.venge.monotone.contrib.usher. - Monotone::AutomateStdio: A Perl library for interfacing with Monotone via its automate stdio interface. State: Stable. Latest development version (via viewmtn).
- 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 (via viewmtn). - Emacs integration:
- monotone.el: In
contrib/directory of monotone's source tree. Latest version (via viewmtn). - 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.
- monotone.el: In
- meld: a general diff, merge, and history browsing tool written in Python for Gnome. Has monotone support since 1.1.3.
- "dumb server" support, for publishing repositories via ordinary ftp/http/sftp/local filesystem: in branch net.venge.monotone.dumb.
- m7: Experimental drop-in command-line wrapper for monotone. Adds 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.
- 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 (via viewmtn). - ciabot_monotone.py: A notification script for
CIA. In
contrib/directory of monotone's source tree. Latest version (via viewmtn). - Script for importing maildir-format mailboxes to monotone, for offline reading and syncing: on the list.
- Wireshark: a fantastic network traffic analyzer, that has support for decoding monotone's 'netsync' protocol.
- Apso: A system for encrypting version control system repositories/databases (currently a prototype; the first version control system supported is Monotone).
- 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).
- 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.
- Qct is a commit tool that supports quite a few revision constrol systems, monotone included.
- 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. (This is a bit old and very much unmaintained.)
converting to monotone from other systems
- CVS: no external tool required or recommended;
simply use monotone's
cvs_importcommand. 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
Integrated development environments
- PIDA: Integrated development environment supporting Monotone (among others)
- Eclipse: Well
known, extremely pluggable IDE, with plugins e.g. for Darcs or other VCs.
Development of a Monotone plugin calledMTTeamhas begun. There doesn't seem to be a webpage yet, but a mailinglist.
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: Supported on Unix (Gnome).
- FileMerge.app: Part of the OS X Developer Tools package. Supported on OS X.
Other programs that should be taught to work with monotone, but haven't been
- Commit Tool or (h)gct is a GUI enabled commit tool...It allows the user to view diffs, select which files to committed (or ignored / reverted) write commit messages and perform the commit itself. (python)
- IntilliJ IDEA is a commercial java IDE with strong support for analysis and refactoring, and an open plugin API allowing integration of new version control systems. Derek Scherger claims to have fiddled with a monotone plugin. Someone on the IntelliJ Community Wiki claimed to be developing a monotone plugin, but did not want to publish the source yet.
- "git-cvsserver": some crazy people have written a perl script
that implements a usable subset of cvs's network protocol, backed
against a git repo. the mapping is bidirectional, so people who
like cvs, can do both checkout and commit using cvs, and
it shows up in git. There is no reason this could not be taught to
work against a monotone backend.
git clone http://mirrors.catalyst.net.nz/git/gitcvs.git/ - Xcode, the Apple Mac OS X IDE
- your request here
Other 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
- one possibly relevant thing: vim plugin for doing code reviews: http://www.vim.org/scripts/script.php?script_id=1563
- "Tortoise Monotone" -- a windows interface to monotone,
integrated with the file explorer. This approach works
very well for subversion...
- the work on TortoiseMtn has been started on the last summit - based on TortoiseHg and guitone
mtnpatch, a small, standalone, slightly smarter version/wrapper ofpatch(1)that understands and can apply the additional cset operations (eg,dropandrename) listed inmtn diffcomments. Useful for end-users tracking monotone sources without actually using monotone or a db. Bonus points for amtnfollowthat combines this patch tool with a web client to fetch diffs as needed from ViewMTN, and keeps a_MTNdirectory 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.
- your wished-for tool here