1RSVNDUMP(1) User commands RSVNDUMP(1)
2
3
4
6 rsvndump - Dumps a remote Subversion repository
7
9 rsvndump [options] url
10
12 rsvndump dumps a Subversion repository without having actual access to
13 the repository data, as required by the "svnadmin(1) dump" command.
14
15 If invoked with valid options, rsvndump will print a dump file to
16 stdout and optional progress to stderr.
17
18 Since rsvndump is also able to dump subdirectories of a repository, the
19 revision numbers in the dump don’t necessarily reflect the original
20 revision numbers. For more information on this, please refer to the
21 REVISION NUMBERS section.
22
23 There are also some additional differences to a "normal" dump generated
24 by svnadmin(1), which are listed in DIFFERENCES TO SVNADMIN DUMP.
25
27 Most of the options can also be found in svnadmin(1) and svn(1) and
28 should be semantically equivalent, unless not stated otherwise.
29
30 -h, --help
31 Print a nice help screen
32
33 -q, --quiet
34 Don’t print any progress
35
36 -v, --verbose
37 Print detailed progress, similar to "svnadmin(1) load". Can be
38 specified multiple times.
39
40 -u, --username username
41 User name for repository authentication.
42
43 -p, --password password
44 Password for repository authentication.
45
46 -r, --revision X or X:Y
47 Specify the revision (or revision range) that should be dumped. X
48 and Y can either be a number or "HEAD". The default revision range
49 is "0:HEAD", i.e. the complete revision history.
50
51 In contrast to svnadmin(1), dumps that were generated using this
52 option can always be loaded into a new repository, (unless
53 --incremental is given, of course). However, the resulting dump may
54 not exactly represent the original history. Please take a look at
55 DIFFERENCES TO SVNADMIN DUMP for further information.
56
57 --deltas
58 Use text deltas instead of full texts in dump output
59
60 --incremental
61 Create incremental output, suitable for concatenation. This results
62 in a dump that does not contain a dumpfile header and no full base
63 revision if the revision range does not start at 0.
64
65 --no-auth-cache
66 Don’t cache the authentication tokens provided by the user, e.g.
67 user name and password, or manual SSL certificate validation. This
68 is equal to the corresponding option in svn(1).
69
70 --non-interactive
71 Instead of prompting, the program will exit with an error. This is
72 equal to the corresponding option in svn(1).
73
74 --config-dir dir
75 Use the given Subversion configuration directory when opening a
76 session to the repository. This is equal to the corresponding
77 option in svn(1).
78
79 --prefix prefix
80 Prepend a given prefix to every node which is dumped. The first
81 revision dumped will also contain the paths necessary to create the
82 prefix.
83
84 Please note that is assumed that prefix is really just a prefix
85 string, with directories separated by "/". Therefore you need to
86 append a "/" at the end of the string to make it a directory. For
87 example, a prefix of myrepo/old_ might result in the following
88 layout:
89
90 myrepo
91 |- old_branches
92 |- old_tags
93 |- old_trunk
94
95 --keep-revnums
96 Keep the revision numbers in the output in sync with the
97 repository. This is done by inserting empty revisions for padding
98 if necessary.
99
100 --no-incremental-header
101 Don’t print the dumpfile header if --incrementals is given and the
102 revision range is not "0:X". This is useful if you really want to
103 append an incremental dumps to an existing file.
104
105 -n, --dry-run
106 Don’t fetch text deltas, resulting in a dump without file contents.
107 This is mainly used for debugging purposes, as the program operates
108 normally but runs much faster.
109
110 --obfuscate
111 Replaces all file and directory names with random strings. This is
112 useful for bug reports in combination with --dry-run.
113
115 The revision numbers in the dump output depend on the options and the
116 path that are given to rsvndump. If you are dumping the root of a
117 repository, you don’t need to worry about revision numbers out of sync,
118 of course. If you are dumping a subdirectory, only the revisions that
119 changed this subdirectory will occur in the dump output. The revision
120 numbers in the dump are strictly sequential, so they will differ from
121 the original ones.
122
123 If you need the keep the revision numbers from the original repository
124 (e.g, if a bug tracker depends on them), you can use the --keep-revnums
125 flag. It pads revisions that did not change the subdirectory with empty
126 revisions. They don’t have an author or date property, but contain the
127 log message "This is an empty revision for padding.".
128
130 The output generated by rsvndump may differ from the one generated by
131 svnadmin(1) because rsvndump may handle file or directory copies
132 different than svnadmin(1). The latter does not support dumping of
133 subdirectories within a repository out of the box. Instead, the
134 svndumpfilter(1) tool will do this job. However, sometimes
135 subdirectories cannot be filtered exclusively with svndumpfilter(1)
136 because they have been copied from another place.
137
138 Since rsvndump has been designed to allow dumps of subdirectories even
139 if your repository access is limited to this subdirectory (in fact,
140 that was the primary reason this project exists), it will not access
141 other subdirectories than the one you want to dump. Example given,
142 dumping a branch will most likely not result in the full history of the
143 branch as it might have been copied from trunk at some point in time.
144
145 Thus, rsvndump will generally replace a copy action by a simple add
146 operation if both of the following conditions are true:
147
148 • The source of the copy is outside the directory tree which is being
149 dumped
150
151 • The source of the copy is not included in the dump because the
152 revision range has been limited using the --revision flag
153
154 The second condition is without effect if the --incremental flag is
155 given, so that incremental dumps yield the same result as normal dumps.
156
157 Maybe I should also note that the dump will only contain the
158 repository’s UUID if the following conditions are true:
159
160 • The root of the repository is being dumped
161
162 • There is no user prefix
163
165 TMPDIR
166 If TMPDIR is set, it specifies the directory to use for temporary
167 files. Otherwise, /tmp is used.
168
170 0 on success, 1 on failure. Any error messages will be printed to
171 stderr.
172
174 svn(1), svnadmin(1), svndumpfilter(1)
175
177 Written by Jonas Gehring, <jonas.gehring@boolsoft.org>
178
180 Copyright © 2008-2011 Jonas Gehring <jonas.gehring@boolsoft.org>.
181 Released under the GNU General Public License.
182
183
184
185rsvndump 0.6 01/21/2022 RSVNDUMP(1)