A distributed version control system
mtn [options...] command [arguments...]
monotone is a highly reliable, very customizable distributed version control system that provides lightweight branches, history-sensitive merging and a flexible trust setup. monotone has an easy-to-learn command set and comes with a rich interface for scripting purposes and thorough documentation.
For more information on monotone, visit http://www.monotone.ca.
The complete documentation, including a tutorial for a quick start with the system, can be found online on http://www.monotone.ca/docs.
set location of configuration directory
strftime(3) format specification for printing dates
set name of database
file to dump debugging log to, on failure
display help message
do not ignore revisions marked as suspended
sets the key for signatures, using either the key name or the key hash
set location of key store
file to write the log to
do not load the built-in lua file with the default hooks
forbid use of the default confdir
print date certs exactly as stored in the database
do not load '~/.monotone/monotonerc' or '_MTN/monotonerc' lua files
don't look for a workspace
do not prompt the user for input
decrease verbosity (undo previous '-v', then disable informational output, then disable warnings)
load extra lua file
limit search for workspace to specified root
controls use of ssh-agent. valid arguments are: 'yes' to use ssh-agent to make signatures if possible, 'no' to force use of monotone's internal code, 'only' to force use of ssh-agent, 'check' to sign with both and compare
set ticker style (count|dot|none)
show timestamps in front of errors, warnings and progress messages
increase verbosity (undo previous '-q', and then enable debug output)
print version number, then exit
insert command line arguments taken from the given file
Commands that aid in scripted execution.
Prints the ancestors of the given revisions.
Lists the ancestors of the first revision given, not in the others.
Prints all branch certs in the revision graph.
Adds a revision certificate.
Prints all certificates attached to a revision.
Checks out a revision from the database into a directory. If a revision is given, that's the one that will be checked out. Otherwise, it will be the head of the branch (given or implicit). If no directory is given, the branch name will be used as directory.
select branch cert for operation
move conflicting, unversioned paths into '_MTN/resolutions' before proceeding with any workspace change
select revision id for operation
Prints the children of a revision.
Prints revisions that are common ancestors of a list of revisions.
Calculates diffs of files.
limit the number of levels of directories to descend
leave out anything described by its argument
reverse order of diff
select revision id for operation
show the matching cset in the diff header
Prints the descendents of the given revisions.
Drops an attribute or all of them from a certain path.
Drops a database variable.
Drops a public key.
Erases the ancestors in a list of revisions.
Erases the descendants in a list of revisions.
Prints the results of the internal line merger, given two child revisions and file names.
Generates an RSA key-pair.
force genkey to not error out when the named key already exists
Prints all attributes for the specified path. If an explicit revision is given, the file's attributes at this specific revision are returned.
select revision id for operation
Shows the revision on which the workspace is based.
Lists the revisions that changed the content relative to another revision.
Prints the name of a file in a target revision relative to a given revision.
Shows change information for a workspace.
limit the number of levels of directories to descend
leave out anything described by its argument
Shows the revision of the current workspace.
Retrieve database variables.
Prints the extended manifest for the given identifier.
Prints the contents of a file (given an identifier).
Prints the contents of a file (given a name).
select revision id for operation
Prints the size of a file (given an identifier).
Shows the manifest associated with a revision.
Shows the value of an option.
Prints a public key packet.
Shows change information for a revision.
Prints the workspace root for the current directory.
Prints the complete ancestry graph.
Prints the heads of the given branch.
Prints the file identifier of a file.
Prints the automation interface's version.
Prints a summary of files found in the workspace.
limit the number of levels of directories to descend
leave out anything described by its argument
don't output corresponding renames if restricted on such nodes
don't output ignored files
don't output unchanged files
don't output unknown files
Lists all keys in the keystore.
Lists the leaves of the revision graph.
Lists the selected revision history.
limit the number of levels of directories to descend
leave out anything described by its argument
revision(s) to start logging at
limit log output to the last number of entries
limit log output to the next number of entries
exclude merges when printing logs
revision(s) to stop logging at
Executes the given lua function and returns the result.
Prints the file data in packet format.
Prints the file delta in packet format.
Prints the revision data in packet format.
Prints the certs associated with a revision in packet format.
Prints the parents of a revision.
Pulls branches from a netsync server.
don't perform the operation, just show what would have happened
leave out anything described by its argument
use the current netsync arguments and options as the future default
Pushes branches to a netsync server.
don't perform the operation, just show what would have happened
leave out anything described by its argument
push the specified key even if it hasn't signed anything
use the current netsync arguments and options as the future default
Stores a file in the database.
Store the public key in the database.
Stores a revision into the database.
Load the given packets into the database.
Executes COMMAND on a remote server.
sets the host (and optionally the port) for a remote netsync action
use the current netsync arguments and options as the future default
Opens an 'automate stdio' connection to a remote server.
use the current netsync arguments and options as the future default
Lists the roots of the revision graph.
Lists the revisions that match a selector.
Sets an attribute on a certain path.
Sets a database variable.
Shows the conflicts between two revisions. If no arguments are given, LEFT_REVID and RIGHT_REVID default to the first two heads that would be chosen by the 'merge' command.
select branch cert for operation
do not ignore revisions marked as suspended
Automates several commands in one run.
block size in bytes for 'automate stdio' output
Synchronizes branches with a netsync server.
don't perform the operation, just show what would have happened
leave out anything described by its argument
push the specified key even if it hasn't signed anything
use the current netsync arguments and options as the future default
Prints all tags attached to a set of branches.
Topologically sorts a list of revisions.
Updates the workspace.
select branch cert for operation
move conflicting, unversioned paths into '_MTN/resolutions' before proceeding with any workspace change
select revision id for operation
Commands that manipulate the database.
Converts the database to the changeset format.
Does some sanity checks on the database. Ensures that the database is consistent by issuing multiple checks.
Dumps the contents of the database. Generates a list of SQL instructions that represent the whole contents of the database. The resulting output is useful to later restore the database from a text file that serves as a backup.
Executes an SQL command on the database. Directly executes the given SQL command on the database
Attempt to fix bad certs. Older monotone versions could sometimes associate certs with the wrong key. This fixes such certs if you have the correct key, and can optionally drop any certs that you don't have the correct key for. This should only be needed if you had such certs in your db when upgrading from 0.44 or earlier, or if you loaded such certs with 'mtn read'.
drop certs signed by keys we don't know about
Shows information about the database.
print detailed information
Initializes a database. Creates a new database file and initializes it.
Loads the contents of the database. Reads a list of SQL instructions that regenerate the contents of the database. This is supposed to be used in conjunction with the output generated by the 'dump' command.
Migrates the database to a newer schema. Updates the database's internal schema to the most recent one. Needed to automatically resolve incompatibilities that may be introduced in newer versions of monotone.
Regenerates the caches stored in the database.
Converts the database to the rosters format.
when rosterifying, drop attrs entries with the given key
Sets the branch's epoch.
Shows the database's version.
Deletes the specified certs from the local database. Deletes all certs which are on the given revision(s) and have the given name and if a value is specified then also the given value.
Kills a revision from the local database.
Commands that aid in program debugging.
Prints an ASCII representation of the revisions' graph.
Differences 2 files and outputs the result.
use context diff format
argument to pass external diff hook
use external diff hook for generating diffs
do not show the function containing each block of changes
reverse order of diff
use unified diff format
show the matching cset in the diff header
Loads a file's contents into the database.
Merges 3 files and outputs the result.
Dumps the roster associated with a given identifier. If no REVID is given, the workspace is used.
Calculates the identity of a file or stdin. If any PATH is given, calculates their identity; otherwise, the one from the standard input is calculated.
Parses versions in RCS files. This command doesn't reconstruct or import revisions. You probably want to use cvs_import.
select branch cert for operation
Commands for information retrieval.
Prints an annotated copy of a file. Calculates and prints an annotated copy of the given file from the specified REVISION.
select revision id for operation
annotate using full revision ids only
Marks the current revision or specified revisions as bad. Known bad revisions are removed from the set being searched.
move conflicting, unversioned paths into '_MTN/resolutions' before proceeding with any workspace change
select revision id for operation
Marks the current revision or specified revisions as good. Known good revisions are removed from the set being searched.
move conflicting, unversioned paths into '_MTN/resolutions' before proceeding with any workspace change
select revision id for operation
Reset the current bisection search. Update the workspace back to the revision from which the bisection was started and remove all current search information, allowing a new search to be started.
Excludes the current revision or specified revisions from the search. Skipped revisions are removed from the set being searched. Revisions that cannot be tested for some reason should be skipped.
move conflicting, unversioned paths into '_MTN/resolutions' before proceeding with any workspace change
select revision id for operation
Reports on the current status of the bisection search. Lists the total number of revisions in the search set, the number of revisions that have been determined to be good or bad, the number of revisions that have been skipped and the number of revisions remaining to be tested.
Updates the workspace to the next revision to be tested by bisection. This command can be used if updates by good, bad or skip commands fail due to blocked paths or other problems.
move conflicting, unversioned paths into '_MTN/resolutions' before proceeding with any workspace change
Prints a file from the database. Fetches the given file FILENAME from the database and prints it to the standard output.
select revision id for operation
Completes a partial identifier.
Shows current differences. Compares the current tree with the files in the repository and prints the differences on the standard output. If one revision is given, the diff between the workspace and that revision is shown. If two revisions are given, the diff between them is given. If no format is specified, unified is used by default.
use context diff format
limit the number of levels of directories to descend
argument to pass external diff hook
leave out anything described by its argument
use external diff hook for generating diffs
do not show the function containing each block of changes
reverse order of diff
select revision id for operation
use unified diff format
show the matching cset in the diff header
Displays help about commands and options.
show hidden commands and options
Lists branches in the database that match a pattern.
leave out anything described by its argument
Lists certificates attached to a revision.
Lists files that have changed with respect to the current revision.
limit the number of levels of directories to descend
leave out anything described by its argument
Lists managed databases and their known workspaces.
Lists duplicate files in the specified revision. If no revision is specified, use the workspace.
select revision id for operation
Lists the current epoch of branches that match a pattern.
Lists workspace files that are ignored in the current branch.
limit the number of levels of directories to descend
leave out anything described by its argument
also operate on the contents of any listed directories
Lists keys that match a pattern.
Lists workspace files that belong to the current branch.
limit the number of levels of directories to descend
leave out anything described by its argument
Lists files that belong to the branch but are not in the workspace.
limit the number of levels of directories to descend
leave out anything described by its argument
Lists all tags in the database.
leave out anything described by its argument
Lists workspace files that are unknown in the current branch.
limit the number of levels of directories to descend
leave out anything described by its argument
also operate on the contents of any listed directories
Lists variables in the whole database or a domain.
Lists known workspaces of a specified database.
Prints selected history in forward or reverse order. This command prints selected history in forward or reverse order, filtering it by PATH if given.
print a brief version of the normal output
limit the number of levels of directories to descend
print diffs along with logs
leave out anything described by its argument
revision(s) to start logging at
limit log output to the last number of entries
limit log output to the next number of entries
exclude files when printing logs
do not use ASCII graph to display ancestry
exclude merges when printing logs
select revision id for operation
revision(s) to stop logging at
Generate a manual page from monotone's command help.
automatically run the output through nroff (default if the output is a terminal)
show hidden commands and options
Shows what conflicts need resolution between two revisions. The conflicts are calculated based on the two revisions given in the REV parameters.
Shows workspace's status information.
limit the number of levels of directories to descend
leave out anything described by its argument
Shows the program version.
print detailed information
Commands to manage keys and certificates.
Creates a certificate for a revision or set of revisions. Creates a certificate with the given name and value on each revision that matches the given selector
Drops a public and/or private key.
Generates an RSA key-pair.
force genkey to not error out when the named key already exists
Changes the passphrase of a private RSA key.
Adds a private key to ssh-agent.
Exports a private key for use with ssh-agent.
Tests whether a hypothetical certificate would be trusted. The current settings are used to run the test.
Commands that access the network.
Checks out a revision from a remote database into a directory. If a revision is given, that's the one that will be checked out. Otherwise, it will be the head of the branch supplied. If no directory is given, the branch name will be used as directory
select branch cert for operation
select revision id for operation
Pulls branches from a netsync server. This pulls all branches that match the pattern given in PATTERN from the netsync server at the address ADDRESS.
don't perform the operation, just show what would have happened
leave out anything described by its argument
use the current netsync arguments and options as the future default
automatically update the workspace, if it was at a head and the command creates a new head
Pushes branches to a netsync server. This will push all branches that match the pattern given in PATTERN to the netsync server at the address ADDRESS.
don't perform the operation, just show what would have happened
leave out anything described by its argument
push the specified key even if it hasn't signed anything
use the current netsync arguments and options as the future default
Serves the database to connecting clients.
address:port to listen on (default :4691)
record process id of server
Synchronizes branches with a netsync server. This synchronizes branches that match the pattern given in PATTERN with the netsync server at the address ADDRESS.
don't perform the operation, just show what would have happened
leave out anything described by its argument
push the specified key even if it hasn't signed anything
use the current netsync arguments and options as the future default
automatically update the workspace, if it was at a head and the command creates a new head
Commands for packet reading and writing.
Prints a private key packet.
Prints a public key packet.
Reads packets from files. If no files are provided, the standard input is used.
Commands to review revisions.
Approves a particular revision.
select branch cert for operation
automatically update the workspace, if it was at a head and the command creates a new head
Comments on a particular revision.
Disapproves a particular revision or revision range.
override author for commit
select branch cert for operation
override date/time for commit
set commit changelog message
set filename containing commit changelog message
automatically update the workspace, if it was at a head and the command creates a new head
Suspends a particular revision.
select branch cert for operation
automatically update the workspace, if it was at a head and the command creates a new head
Puts a symbolic tag certificate on a revision.
Notes the results of running a test on a revision.
Commands to manipulate the tree.
Checks out a revision from the database into a directory. If a revision is given, that's the one that will be checked out. Otherwise, it will be the head of the branch (given or implicit). If no directory is given, the branch name will be used as directory.
select branch cert for operation
move conflicting, unversioned paths into '_MTN/resolutions' before proceeding with any workspace change
select revision id for operation
Delete any bookkeeping files related to conflict resolution.
Set the resolution for the first unresolved single-file conflict.. Use 'mtn conflicts show_first' to see possible resolutions.
file in which to store conflicts
Set the left resolution for the first unresolved two-file conflict.
file in which to store conflicts
Set the right resolution for the first unresolved two-file conflict.
file in which to store conflicts
Show the first unresolved conflict in the conflicts file, and possible resolutions.
file in which to store conflicts
Show the remaining unresolved conflicts in the conflicts file.
file in which to store conflicts
Store the conflicts from merging two revisions. If no arguments are given, LEFT_REVID and RIGHT_REVID default to the first two heads that would be chosen by the 'merge' command. If '--conflicts-file' is not given, '_MTN/conflicts' is used.
select branch cert for operation
file in which to store conflicts
Merges two explicitly given revisions. The results of the merge are placed on the branch specified by DEST-BRANCH.
override author for commit
override date/time for commit
set commit changelog message
set filename containing commit changelog message
specify conflict resolutions in a file, instead of interactively
use file to resolve conflicts
automatically update the workspace, if it was at a head and the command creates a new head
Shows unmerged head revisions of a branch.
select branch cert for operation
Imports the contents of a directory into a branch.
override author for commit
select branch cert for operation
override date/time for commit
don't perform the operation, just show what would have happened
leave out anything described by its argument
set commit changelog message
set filename containing commit changelog message
do not ignore any files
select revision id for operation
Merges unmerged heads of a branch.
override author for commit
select branch cert for operation
override date/time for commit
set commit changelog message
set filename containing commit changelog message
specify conflict resolutions in a file, instead of interactively
use file to resolve conflicts
automatically update the workspace, if it was at a head and the command creates a new head
Merges one branch into a subdirectory in another branch.
override author for commit
override date/time for commit
set commit changelog message
set filename containing commit changelog message
specify conflict resolutions in a file, instead of interactively
use file to resolve conflicts
automatically update the workspace, if it was at a head and the command creates a new head
Merges a revision into the current workspace's base revision. Merges OTHER-REVISION into the current workspace's base revision, and update the current workspace with the result. There can be no pending changes in the current workspace. Both OTHER-REVISION and the workspace's base revision will be recorded as parents on commit. The workspace's selected branch is not changed.
move conflicting, unversioned paths into '_MTN/resolutions' before proceeding with any workspace change
Migrates a workspace directory's metadata to the latest format. If no directory is given, defaults to the current workspace.
Merges from one branch to another asymmetrically.
override author for commit
override date/time for commit
set commit changelog message
set filename containing commit changelog message
specify conflict resolutions in a file, instead of interactively
use file to resolve conflicts
Refreshes the inodeprint cache.
Sets up a new workspace directory. If no directory is specified, uses the current directory.
select branch cert for operation
Commands to manage persistent variables.
Removes all invalid, registered workspace paths for the current database.
Registers a new workspace for the current database. This command adds WORKSPACE_PATH to the list of `known-workspaces'.
Sets a database variable. This command modifies (or adds if it did not exist before) the variable named NAME, stored in the database, and sets it to the given value in VALUE. The variable is placed in the domain DOMAIN.
Unregisters an existing workspace for the current database. This command removes WORKSPACE_PATH to the list of `known-workspaces'.
Unsets a database variable. This command removes the variable NAME from domain DOMAIN, which was previously stored in the database.
Commands for interaction with other version control systems.
Imports all versions in a CVS repository.
select branch cert for operation
Produces a git fast-export data stream on stdout.
file mapping author names from original to new values
file mapping branch names from original to new values
save the internal marks table after exporting revisions
load the internal marks table before exporting revisions
include standard cert values in commit logs
include revision ids in commit logs
include git refs for 'revs', 'roots' or 'leaves'
use only one changelog cert for the git commit message
Commands that deal with the workspace.
Adds files to the workspace.
do not ignore any files
also operate on the contents of any listed directories
perform the operations for unknown files from workspace
Removes attributes from a file. If no attribute is specified, this command removes all attributes attached to the file given in PATH. Otherwise only removes the attribute specified in ATTR.
Gets the values of a file's attributes. If no attribute is specified, this command prints all attributes attached to the file given in PATH. Otherwise it only prints the attribute specified in ATTR.
Sets an attribute on a file. Sets the attribute given on ATTR to the value specified in VALUE for the file mentioned in PATH.
Commits workspace changes to the database.
override author for commit
select branch cert for operation
override date/time for commit
limit the number of levels of directories to descend
leave out anything described by its argument
set commit changelog message
set filename containing commit changelog message
Drops files from the workspace.
only update monotone's internal bookkeeping, not the filesystem
perform the operations for files missing from workspace
also operate on the contents of any listed directories
Creates directories and adds them to the workspace.
do not ignore any files
Renames the root directory. After this command, the directory that currently has the name NEW_ROOT will be the root directory, and the directory that is currently the root directory will have name PUT_OLD. Use of '--bookkeep-only' is NOT recommended.
only update monotone's internal bookkeeping, not the filesystem
move conflicting, unversioned paths into '_MTN/resolutions' before proceeding with any workspace change
Applies changes made at arbitrary places in history. This command takes changes made at any point in history, and edits your current workspace to include those changes. The end result is identical to 'mtn diff -r FROM -r TO | patch -p0', except that this command uses monotone's merger, and thus intelligently handles renames, conflicts, and so on. If one revision is given, applies the changes made in that revision compared to its parent. If two revisions are given, applies the changes made to get from the first revision to the second.
limit the number of levels of directories to descend
leave out anything described by its argument
move conflicting, unversioned paths into '_MTN/resolutions' before proceeding with any workspace change
select revision id for operation
Renames entries in the workspace.
only update monotone's internal bookkeeping, not the filesystem
Reverts files and/or directories. In order to revert the entire workspace, specify '.' as the file name.
limit the number of levels of directories to descend
leave out anything described by its argument
perform the operations for files missing from workspace
Reverses a mistaken 'drop'. If the file was deleted from the workspace, this is the same as 'revert'. Otherwise, it just removes the 'drop' from the manifest.
Updates the workspace. This command modifies your workspace to be based off of a different revision, preserving uncommitted changes as it does so. If a revision is given, update the workspace to that revision. If not, update the workspace to the head of the branch.
select branch cert for operation
move conflicting, unversioned paths into '_MTN/resolutions' before proceeding with any workspace change
select revision id for operation
info mtn and the documentation on http://www.monotone.ca/docs
Please report bugs to https://code.monotone.ca/p/monotone/issues/.
monotone was written originally by Graydon Hoare <[email protected]> in 2003 and has since then received numerous contributions from many individuals. A complete list of authors can be found in AUTHORS.
Nowadays, monotone is maintained by a collective of enthusiastic programmers, known as the monotone development team.
monotone and this man page is Copyright (c) 2003 - 2014 by the monotone development team.