mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
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 a new issue