Code

vcs-svn: set up channel to read fast-import cat-blob response
authorDavid Barr <david.barr@cordelta.com>
Sat, 5 Mar 2011 02:30:23 +0000 (13:30 +1100)
committerJonathan Nieder <jrnieder@gmail.com>
Mon, 7 Mar 2011 07:43:57 +0000 (01:43 -0600)
commit41529bbce407fbf1a925cfbc7c1aa30064f66ae7
tree5a6d8500d360c55d0e32d7c85c78fd17e5c5e678
parentefc749b48f729992d838484d652ba24f5291ee28
vcs-svn: set up channel to read fast-import cat-blob response

Set up some plumbing: teach the svndump lib to pass a file descriptor
number to the fast_export lib, representing where cat-blob/ls
responses can be read from, and add a get_response_line helper
function to the fast_export lib to read a line from that file.

Unfortunately this means that svn-fe needs file descriptor 3 to be
redirected from somewhere (preferrably the cat-blob stream of a
fast-import backend); otherwise it will fail:

$ svndump <path> | svn-fe
fatal: cannot read from file descriptor 3: Bad file descriptor

For the moment, "svn-fe 3</dev/null" works as a workaround but it
will not work for very long.  A fast-import backend that can retrieve
old commits is needed in order to be able to fulfill svn
"Node-copyfrom-rev" requests that refer to revs from a previous run.

[jn: with new change description]

Based-on-patch-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Barr <david.barr@cordelta.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
contrib/svn-fe/svn-fe.txt
t/t9010-svn-fe.sh
vcs-svn/fast_export.c
vcs-svn/fast_export.h
vcs-svn/svndump.c