1REPOTOOL(1)                    Development Tools                   REPOTOOL(1)
2
3
4

NAME

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

SYNOPSIS

10       repotool [-v] [action] [URL-or-dir]
11

DESCRIPTION

13       repotool is a script wrapper around repository operations that differ
14       by version-control system. It is little use by itself, existing mainly
15       to generate and simplify a conversion makefile usable with
16       reposurgeon(1).
17
18       Not all actions are supported on all systems. You will get an error
19       message and a return value of 1 when attempting an unsupported action.
20
21       With -the -v option, report the commands executed just before they are
22       run.
23
24       The "initialize" option takes a project name (and, optionally,
25       following source and target VCS types) and generates a Makefile that
26       will sequence various steps of a repository conversion. It also
27       generates stub lift and options files. This is meant to be run in an
28       empty work directory, and it is an error to do 'initialize' where any
29       of these files already exist. Afterwards, you will need to set some
30       variables in the Makefile; read its header comment.
31
32       The 'export' action, run from within a repository directory, dumps a
33       copy of a CVS, Subversion, git, bzr, hg, or darcs repository to a flat
34       history file readable by reposurgeon. The format is usually a
35       git-fast-import stream, except that Subversion repositories export as
36       Subversion dump files; the point is to be a lossless erepresentation,
37       or as close to one as possible.
38
39       The 'tags' option, run from within a repository directory, returns a
40       list of the repository's release tags.
41
42       The 'branches' option, run from within a repository directory , returns
43       a list of the repository's branch names.
44
45       The 'checkout' option checks out a working copy of the repository. It
46       must be called from within the repository. It takes one required
47       argument - the checkout directory location.
48
49       The checkout option may take a revision, tag, or branch specifaction,
50       given with the -r, -t, or -b options. If the spec is omitted, the tip
51       of the main line of the repository will be used; this is equivalent to
52       specifying branch 'master' (git terminology, which is translated by
53       reposurgeon to 'trunk' or whatever the underlying VCS uses).
54
55       The 'compare' action takes two repository directories. It may
56       optionally take a tag-branch-revision spec as for the checkout option.
57       The selected versions are compared with diff -q -r, with noise due to
58       SCCS/RCS/CVS keyword expansion ignored. You can follow the command verb
59       with one or more -x options followed by basenames of paths to exclude
60       from comparison. You can get a context-diff report on file differences
61       with the -u option. File permissions well as content are checked, any
62       mismatches will be shown after the diff listing.
63
64       The 'compare-tags' action takes two repository directories, extracts a
65       list of tags from the first, then compares the repository contents at
66       each tag in the list, generating a compare report for each. You can
67       follow the command verb with one or more -x options followed by
68       basenames of paths to exclude from comparison. You can get a
69       context-diff report on file differences with the -u option.
70
71       The 'compare-branches' action takes two repository directories,
72       extracts a list of branches common to both, then compares the
73       repository contents at each branch in the list, generating a compare
74       report for each. You can follow the command verb with one or more -x
75       options followed by basenames of paths to exclude from comparison. You
76       can get a context-diff report on file differences with the -u option.
77
78       The 'compare-all' action takes two repository directories, and runs all
79       three above compare actions on them. Even if the same name is a tag in
80       one repository and a branch in the other, it will compare them against
81       each other. Not distinguishing them is useful as CVS tags that are not
82       applied to every file in the repository may get converted to branches.
83       The options are the same as 'compare-tags'.
84
85       The 'mirror' action makes or updates a local mirror of a Subversion,
86       CVS, git, or hg repo. It requires a single argument, either a
87       repository URL or the name of a local mirror directory created by a
88       previous run. The first form creates a local mirror of the repository
89       in a directory named after the last segment of the URL, with the suffix
90       “-mirror” (the local mirror name can be overridden by an optional
91       second argument). The second form updates the local mirror, doing an
92       incremental fetch; just give the mirror directory name.
93
94       Subversion URLs are as specified in the public documentation for
95       Subversion. CVS URLs must specify a host and repository path, followed
96       by a '#', followed by a module name. URLs for git and hg should be in
97       the form normally used for clone commands
98

ENVIRONMENT VARIABLES

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

BUGS

104       Tag comparisons with git will not cope well with a branch name
105       containing the string "detached".
106
107       Due to extreme slowness of the Subversion checkout operation, the
108       compare head, tag, and branch modes assume that if one of the
109       direcvtories is a Subversion checkout you have done a full checkout of
110       HEAD before calling this tool; thus no svn update operation is required
111       unless you give an -r option. Spurious errors will be reported if the
112       directory is not a full checkout of HEAD. To avoid this optimization
113       and force updating, do "-r HEAD".
114

REQUIREMENTS

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

SEE ALSO

122       reposurgeon(1).
123

AUTHOR

125       Eric S. Raymond <esr@thyrsus.com>. This tool is distributed with
126       reposurgeon; see the project page at
127       http://www.catb.org/~esr/reposurgeon.
128
129
130
131repotool                          01/30/2020                       REPOTOOL(1)
Impressum