summaryrefslogtreecommitdiff
path: root/contrib/svn-fe/svn-fe.txt
blob: 85f7b8302835c741c6963611b6483223aa573410 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
svn-fe(1)
=========

NAME
----
svn-fe - convert an SVN "dumpfile" to a fast-import stream

SYNOPSIS
--------
[verse]
mkfifo backchannel &&
svnadmin dump --incremental REPO |
	svn-fe [url] 3<backchannel |
	git fast-import --cat-blob-fd=3 3>backchannel

DESCRIPTION
-----------

Converts a Subversion dumpfile into input suitable for
git-fast-import(1) and similar importers. REPO is a path to a
Subversion repository mirrored on the local disk. Remote Subversion
repositories can be mirrored on local disk using the `svnsync`
command.

Note: this tool is very young.  The details of its commandline
interface may change in backward incompatible ways.

INPUT FORMAT
------------
Subversion's repository dump format is documented in full in
`notes/dump-load-format.txt` from the Subversion source tree.
Files in this format can be generated using the 'svnadmin dump' or
'svk admin dump' command.

Dumps produced with 'svnadmin dump --deltas' (dumpfile format v3)
are not supported.

OUTPUT FORMAT
-------------
The fast-import format is documented by the git-fast-import(1)
manual page.

NOTES
-----
Subversion dumps do not record a separate author and committer for
each revision, nor a separate display name and email address for
each author.  Like git-svn(1), 'svn-fe' will use the name

---------
user <user@UUID>
---------

as committer, where 'user' is the value of the `svn:author` property
and 'UUID' the repository's identifier.

To support incremental imports, 'svn-fe' puts a `git-svn-id` line at
the end of each commit log message if passed an url on the command
line.  This line has the form `git-svn-id: URL@REVNO UUID`.

The resulting repository will generally require further processing
to put each project in its own repository and to separate the history
of each branch.  The 'git filter-branch --subdirectory-filter' command
may be useful for this purpose.

BUGS
----
Empty directories and unknown properties are silently discarded.

The exit status does not reflect whether an error was detected.

SEE ALSO
--------
git-svn(1), svn2git(1), svk(1), git-filter-branch(1), git-fast-import(1),
https://svn.apache.org/repos/asf/subversion/trunk/notes/dump-load-format.txt