monotone(1)

NAME
monotone - distributed version control system

SYNOPSIS
monotone [options] <command> [parameters]

Options, which affect global behavior or set default values, come first in the argument list. A single command must follow, indicating the operation to perform, followed by parameters which vary depending on the command.

  Note
This manpage is a summary of some of the features and commands of monotone, but it is not the most detailed source of information available. For a complete discussion of the concepts and a tutorial on its use, please refer to the texinfo manual (via the info monotone command, or online).

  Commands

comment <id>
    Write a comment cert for a revision.

approve <id1> <id2>
    Make a "branch" cert approving of a revision's membership in a branch.

disapprove <id1> <id2>
    Disapprove of a revision, committing the inverse changes as as a descendant of the disapproved revision.

tag <id> <tagname>
    Put a symbolic tag cert on a revision.

testresult <id> (1|0)
    Indicate a passing or failing test result on a revision.

agraph
    Dump revision graph to stdout.

diff
    Show diffs between working copy and database.

status
    Show status of working copy.

log [id]
    Show historical log of revisions, starting from working copy base revision, or [id] if given.

cert <id> <certname> [certval]
    Create a custom cert for a revision. Reads cert value from stdin if no value given on command line.

vcheck (create|check) [id]
    Produce or check vcheck certs for the given manifest [id].

genkey <keyid>
    Generate an RSA key-pair and store it in the database.

list certs <id>
    List certs associated with revision.

list keys [partial-id]
    List keys matching glob, or list all keys if no glob given.

list branches
    List all branches.

list tags
    List all tags.

list unknown
    List files in working directory, but not in revision's manifest or work list.

list ignored
    List files intentionally ignored due to the ignore_file hook.

list missing
    List files in revision's manifest, but not in working directory.

fcerts <id>
    Write file cert packets to stdout.

fdata <id>
    Write file data packet to stdout.

fdelta <oldid> <newid>
    Write file delta packet to stdout.

mcerts <id>
    Write manifest cert packets to stdout.

mdata <id>
    Write manifest data packet to stdout.

mdelta <oldid> <newid>
    Write manifest delta packet to stdout.

rcerts <id>
    Write revision cert packets to stdout.

rdata <id>
    Write revision data packet to stdout.

privkey <id>
    Write private key packet to stdout.

pubkey <id>
    Write public key packet to stdout.

read
    Read packets from stdin.

cvs_import <cvsroot>
    Import all versions in CVS repository. Reconstructs revisions and converts metadata to certificates. A private signing key must already exist in the database.

rcs_import <rcsfile> ...
    Import all file versions in RCS files. Does not reconstruct revisions across the entire tree.

checkout [manifest-id] <directory
    Check out tree state from database.

co [manifest-id] <directory
    Check out tree state from database; an alias for checkout.

cat (file|manifest) <id>
    Write file or manifest from database to stdout.

heads
    Show unmerged heads of branch, or report when branch is merged.

merge
    Merge unmerged heads of branch.

add <pathname> [...]
    Add files to working copy. adding a file does not copy it into the database, merely adds it to the work list. You must commit your changes in order to copy added files to the database.

commit [log message]
    Commit working copy to database. If a log message is provided on the command line, it is used; otherwise a log message editor will be invoked.

drop <pathname> [...]
    Drop files from working copy. Files are not deleted from working copy, merely noted as removals in the work list.

rename <src> <dst>
    Rename files from <src> to <dst> in working copy.

update
    Update working copy.

push <host> <collection>
    Push contents of <collection> to database on <host>

pull <host> <collection>
    Push contents of <collection> from database on <host>

sync <host> <collection>
    Sync contents of <collection> with database on <host>

serve <host> <collection>
    Serve contents of <collection> at network address <host>

db (init|info|version|migrate)
    Manipulate database state.

DESCRIPTION
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 authority. 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.

OPTIONS

--help
    Print help message.

--debug
    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.

--quiet
    Turn off normal progress messages.

--dump=<file>
    Dump debugging log to file on failure.

--nostd
    Do not evaluate "standard" lua hooks compiled into monotone.

--norc
    Do not load lua hooks from user's ~/.monotonerc file.

--rcfile=<file>
    Load extra lua hooks from file (may be given multiple times).

--db=<file>
    Use database in file.

--key=<keyid>
    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 get_branch_key(branchname).

--branch=<branchname>
    Use branchname for operations on a branch. Default is inferred in operations on existing branches (commit, update, etc).

--ticket=dot|count
    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). The default is count.

ENVIRONMENT

EDITOR
    Used to edit comments, log messages, etc.

VISUAL
    Used in preference to EDITOR, if set.

FILES

$HOME/.monotonerc
    A lua script, used as a customization file.

NOTES

•   Command line options override environment variables and settings in lua scripts (such as .monotonerc)

SEE ALSO
info monotone

BUGS
see http://savannah.nongnu.org/bugs/?group=monotone

AUTHOR
graydon hoare <graydon@pobox.com>