Provided by: reposurgeon_3.42-2ubuntu1_amd64 bug

NAME

       repotool - query or manipulate a CVS, Subversion, git, bzr, hg, or darcs repository in a
       uniform way

SYNOPSIS

       repotool [action] [URL-or-dir]

DESCRIPTION

       repotool is a script wrapper around repository operations that differ by version-control
       system. It is little use by itself, existing mainly to generate and simplify a conversion
       makefile usable with reposurgeon(1).

       Not all actions are supported on all systems. You will get an error message and a return
       value of 1 when attempting an unsupported action.

       The "initialize" option takes a project name (and, optionally, following source and target
       VCCS types) and generates a Makefile that will sequence various steps of a repository
       conversion. It also generates stub lift and options files. This is meant to be run in an
       empty work directory, and it is an error to do 'initialize' where any of these files
       already exist. Afterwards, you will need to set some variables in the Makefile; read its
       header comment.

       The 'export' action, run from within a repository directory, dumps a copy of a CVS,
       Subversion, git, bzr, hg, or darcs repository to a flat history file readable by
       reposurgeon. The format is usually a git-fast-import stream, except that Subversion
       repositories export as Subversion dump files; the point is to be a lossless
       erepresentation, or as close to one as possible.

       The 'tags' option, run from within a repository directory, returns a list of the
       repository's release tags.

       The 'branches' option, run from within a repository directory , returns a list of the
       repository's branch names.

       The 'checkout' option checks out a working copy of the repository. It must be called from
       within the repository. It takes one required argument - the checkout directory location.
       It may take a following optional argument which is a tag or revision specification; if
       this argument is not given, the tip (most recent) mainline revision is assumed.

       The 'compare' action takes two repository directories and a revision spec (typically a tag
       name). If the revision spec is omitted, the tip of the main line of both repositories will
       be used. The selected revisions are cpmpared with diff -q -r, with noise due to
       SCCS/RCS/CVS keyword expansion ignored. You can follow the command verb with one or more
       -x options followed by basenames of paths to exclude from comparison. You can get a
       context-diff report on file differences with the -u option.

       The 'compare-tags' action takes two repository directories, extracts a list of tags from
       the first, then compares the repository contents at each tag in the list, generating a
       compare report for each. You can follow the command verb with one or more -x options
       followed by basenames of paths to exclude from comparison. You can get a context-diff
       report on file differences with the -u option.

       The 'compare-branches' action takes two repository directories, extracts a list of
       branches common to both, then compares the repository contents at each branch in the list,
       generating a compare report for each. You can follow the command verb with one or more -x
       options followed by basenames of paths to exclude from comparison. You can get a
       context-diff report on file differences with the -u option.

       The 'compare-all' action takes two repository directories, and runs all 3 above compare
       actions on them. Even if the same name is a tag in one repository and a branch in the
       other, it will compare them against each other. Not distinguishing them is useful as CVS
       tags that are not applied to every file in the repository may get converted to branches.
       The options are the same as 'compare-tags'.

       The 'mirror' action makes or updates a local mirror of a Subversion or CVS repo. It
       requires a single argument, either a Subversion URL or a CVS URL, or the name of a local
       mirror directory created by a previous run. The first form creates a local mirror of the
       repository in a directory named after the last segment of the URL, with the suffix
       “-mirror” (the local mirror name can be overridden by an optional) second argument. The
       second form updates the local mirror, doing an incremental fetch; just give the mirror
       directory name.

       Subversion URLs are as specified in the public documentation for Subversion. CVS URLs must
       specify a host and repository path, followed by a '#', followed by a module name.

ENVIRONMENT VARIABLES

       This program uses the $TMPDIR environment variable, defaulting to /tmp if it is not set.

REQUIREMENTS

       The export action is a wrapper around either native export facilities or the following
       engines: cvs-fast-export(1) (for CVS), svnadmin(1) (for SVN), hg-fast-export.py(1) (for
       hg). You must have the appropriate engine in your $PATH for whatever kind of repository
       you are streaming.

SEE ALSO

       reposurgeon(1).

AUTHOR

       Eric S. Raymond <esr@thyrsus.com>. This tool is distributed with reposurgeon; see the
       project page at http://www.catb.org/~esr/reposurgeon.