This manpage is not well-maintained; it is a summary of monotone's
capabilities, and probably contains inaccuracies. For the complete,
accurate manual, including tutorial, concepts, and full reference
documentation, please use info monotone or refer to
The developers will gratefully accept patches to arrange that this
manpage, the --help output, and the main manual are kept
in sync mechanically.
On Debian systems, the monotone-doc package contains a local
copy of the HTML manual at
and a printable PDF version.
Monotone is a version control system, which allows you to keep old
versions of files, as well as special manifest files which
describe the location of files in a tree. Unlike other systems,
versions in monotone are identified by cryptographic hash, and
operations are authenticated by individual users' evaluating
cryptographic signatures on meta-data, rather than any central
Monotone keeps a collection of versions in a single-file relational
database. It is essentially serverless, using network servers only as
untrusted communication facilities. A monotone database is a regular
file, which contains all the information needed to extract previous
versions of files, verify signatures, merge and modify versions, and
communicate with network servers.
Write a comment cert for a revision.
Make a "branch" cert approving of a revision's membership in a branch.
Disapprove of a revision, committing the inverse changes as as a
descendant of the disapproved revision.
Put a symbolic tag cert on a revision.
Indicate a passing or failing test result on a revision.
Commit workspace to database. Each commit has a changelog message
associated with it. If --message is provided on the command line, it
is used; if --message-file is provided, the content of the
named file will be used as a commit message. If the filename is '-'
the commit message will be read from standard input. Otherwise a log
message editor will be invoked. If the file _MTN/log exists
and is non-empty, its content is used to prefill the editor. You
cannot specify both --message and --message-file at the same time, and
if _MTN/log exists and is non-empty, you can cannot specify either of them
Turn on inodeprints mode, and force a cache refresh.
Serve contents of <glob> at network address <host>, on the
port <port>. If <port> isn't given, 4691 is used. If a
--pid-file option is provided on the command line, monotone will store
the process id of the server in the specified file.
set<domain> <name> <value>
Set the db var <name> in domain <domain> to value
Delete any setting for db var <name> in domain <domain>.
db(init | info | version | dump | load | migrate | rebuild | execute | check)
Manipulate database state.
Command line options override environment variables and
settings in lua scripts (such as .monotonerc)
Print help message.
Turn on debugging log on standard error stream. This is very
verbose. Default is to be silent, unless an error occurs, in which
case failure log is dumped.
Turn off normal progress messages.
Dump debugging log to file on failure.
Do not evaluate "standard" lua hooks compiled into monotone.
Do not load lua hooks from user's ~/.monotonerc file.
Load extra lua hooks from file (may be given multiple times).
Use database in file.
Use keyid for operations which produce RSA signatures. Default
is inferred from presence of unique private key in database. Can also
be customized on a per-branch basis with hook function
An alias for --key=<keyid>
Use branchname for operations on a branch. Default is inferred
in operations on existing branches (commit, update, etc).
An alias for --branch=<branchname>
Use the given method to print tickers. The count method prints
the count for each ticker on one line, incrementing the numbers in
place, while the dot method prints a continuous string of
characters (like some programs provide a progress line of dots).
none prints nothing. The default is count.
Used to specify one or more revision ids to various commands.
An alias for --revision=<id>
Use the given message as the changelog when committing a new revision
rather than invoking the log message editor. Currently this option only
applies to the commit command but it may also apply to the comment
command in the future.
This option is alternative to --message-file
-m <log message>
An alias for --message=<log message>
Use the content of the given file as the changelog when committing a
new revision rather than invoking the log message editor. If the passed filename is '-' the changelog message will be read from standard input.
Currently this option only applies to the commit command but it may also apply
to the comment command in the future.
This option is alternative to --message.
Use the given author as the value of the "author" cert when committing
a new revision, rather than the default author. Useful when
committing a patch on behalf of someone else, or when importing
history from another version control system.
--date=<date and time>
Use the given given date and time as value of the "date" cert when
committing a new revision, rather than the current time. Useful when
importing history from another version control system.
Stop the search for a workspace (containing the _MTN directory)
at the specified root directory rather than at the physical root of the
Inject the contents of the file in place among the command line
arguments. This may be useful in case the command line would
otherwise become too long for your system. This option can be used
more than once if needed.