Add a sample user for the svndump library
The svn-fe tool takes a Subversion dump file as input and produces a fast-import stream as output. This can be useful as a low-level tool in building other importers, or for debugging the vcs-svn library. make svn-fe make svn-fe.1 to test. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
53b304224a
commit
e605164d1d
3
contrib/svn-fe/.gitignore
vendored
Normal file
3
contrib/svn-fe/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
/*.xml
|
||||||
|
/*.1
|
||||||
|
/*.html
|
63
contrib/svn-fe/Makefile
Normal file
63
contrib/svn-fe/Makefile
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
all:: svn-fe$X
|
||||||
|
|
||||||
|
CC = gcc
|
||||||
|
RM = rm -f
|
||||||
|
MV = mv
|
||||||
|
|
||||||
|
CFLAGS = -g -O2 -Wall
|
||||||
|
LDFLAGS =
|
||||||
|
ALL_CFLAGS = $(CFLAGS)
|
||||||
|
ALL_LDFLAGS = $(LDFLAGS)
|
||||||
|
EXTLIBS =
|
||||||
|
|
||||||
|
GIT_LIB = ../../libgit.a
|
||||||
|
VCSSVN_LIB = ../../vcs-svn/lib.a
|
||||||
|
LIBS = $(VCSSVN_LIB) $(GIT_LIB) $(EXTLIBS)
|
||||||
|
|
||||||
|
QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
|
||||||
|
QUIET_SUBDIR1 =
|
||||||
|
|
||||||
|
ifneq ($(findstring $(MAKEFLAGS),w),w)
|
||||||
|
PRINT_DIR = --no-print-directory
|
||||||
|
else # "make -w"
|
||||||
|
NO_SUBDIR = :
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(findstring $(MAKEFLAGS),s),s)
|
||||||
|
ifndef V
|
||||||
|
QUIET_CC = @echo ' ' CC $@;
|
||||||
|
QUIET_LINK = @echo ' ' LINK $@;
|
||||||
|
QUIET_SUBDIR0 = +@subdir=
|
||||||
|
QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
|
||||||
|
$(MAKE) $(PRINT_DIR) -C $$subdir
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
svn-fe$X: svn-fe.o $(VCSSVN_LIB) $(GIT_LIB)
|
||||||
|
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ svn-fe.o \
|
||||||
|
$(ALL_LDFLAGS) $(LIBS)
|
||||||
|
|
||||||
|
svn-fe.o: svn-fe.c ../../vcs-svn/svndump.h
|
||||||
|
$(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) $<
|
||||||
|
|
||||||
|
svn-fe.html: svn-fe.txt
|
||||||
|
$(QUIET_SUBDIR0)../../Documentation $(QUIET_SUBDIR1) \
|
||||||
|
MAN_TXT=../contrib/svn-fe/svn-fe.txt \
|
||||||
|
../contrib/svn-fe/$@
|
||||||
|
|
||||||
|
svn-fe.1: svn-fe.txt
|
||||||
|
$(QUIET_SUBDIR0)../../Documentation $(QUIET_SUBDIR1) \
|
||||||
|
MAN_TXT=../contrib/svn-fe/svn-fe.txt \
|
||||||
|
../contrib/svn-fe/$@
|
||||||
|
$(MV) ../../Documentation/svn-fe.1 .
|
||||||
|
|
||||||
|
../../vcs-svn/lib.a: FORCE
|
||||||
|
$(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) vcs-svn/lib.a
|
||||||
|
|
||||||
|
../../libgit.a: FORCE
|
||||||
|
$(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) libgit.a
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) svn-fe$X svn-fe.o svn-fe.html svn-fe.xml svn-fe.1
|
||||||
|
|
||||||
|
.PHONY: all clean FORCE
|
15
contrib/svn-fe/svn-fe.c
Normal file
15
contrib/svn-fe/svn-fe.c
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
/*
|
||||||
|
* This file is in the public domain.
|
||||||
|
* You may freely use, modify, distribute, and relicense it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include "vcs-svn/svndump.h"
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
svndump_init(NULL);
|
||||||
|
svndump_read((argc > 1) ? argv[1] : NULL);
|
||||||
|
svndump_reset();
|
||||||
|
return 0;
|
||||||
|
}
|
66
contrib/svn-fe/svn-fe.txt
Normal file
66
contrib/svn-fe/svn-fe.txt
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
svn-fe(1)
|
||||||
|
=========
|
||||||
|
|
||||||
|
NAME
|
||||||
|
----
|
||||||
|
svn-fe - convert an SVN "dumpfile" to a fast-import stream
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
--------
|
||||||
|
svnadmin dump --incremental REPO | svn-fe [url] | git fast-import
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Converts a Subversion dumpfile (version: 2) 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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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' will put 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`.
|
||||||
|
|
||||||
|
Empty directories and unknown properties are silently discarded.
|
||||||
|
|
||||||
|
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
|
||||||
|
----
|
||||||
|
Litters the current working directory with .bin files for
|
||||||
|
persistence. Will be fixed when the svn-fe infrastructure is aware of
|
||||||
|
a Git working directory.
|
||||||
|
|
||||||
|
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
|
Loading…
Reference in New Issue
Block a user