From 271fd1fc2a25ebfc1782aab0d39b613555d22315 Mon Sep 17 00:00:00 2001 From: Florian Achleitner Date: Wed, 19 Sep 2012 17:21:22 +0200 Subject: remote-svn, vcs-svn: Enable fetching to private refs The reference to update by the fast-import stream is hard-coded. When fetching from a remote the remote-helper shall update refs in a private namespace, i.e. a private subdir of refs/. This namespace is defined by the 'refspec' capability, that the remote-helper advertises as a reply to the 'capabilities' command. Extend svndump and fast-export to allow passing the target ref. Update svn-fe to be compatible. Signed-off-by: Florian Achleitner Acked-by: David Michael Barr Signed-off-by: Junio C Hamano --- vcs-svn/svndump.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'vcs-svn/svndump.c') diff --git a/vcs-svn/svndump.c b/vcs-svn/svndump.c index d81a078b8e..c8a5b7eebb 100644 --- a/vcs-svn/svndump.c +++ b/vcs-svn/svndump.c @@ -299,13 +299,13 @@ static void handle_node(void) node_ctx.text_length, &input); } -static void begin_revision(void) +static void begin_revision(const char *remote_ref) { if (!rev_ctx.revision) /* revision 0 gets no git commit. */ return; fast_export_begin_commit(rev_ctx.revision, rev_ctx.author.buf, &rev_ctx.log, dump_ctx.uuid.buf, dump_ctx.url.buf, - rev_ctx.timestamp); + rev_ctx.timestamp, remote_ref); } static void end_revision(void) @@ -314,7 +314,7 @@ static void end_revision(void) fast_export_end_commit(rev_ctx.revision); } -void svndump_read(const char *url) +void svndump_read(const char *url, const char *local_ref) { char *val; char *t; @@ -353,7 +353,7 @@ void svndump_read(const char *url) if (active_ctx == NODE_CTX) handle_node(); if (active_ctx == REV_CTX) - begin_revision(); + begin_revision(local_ref); if (active_ctx != DUMP_CTX) end_revision(); active_ctx = REV_CTX; @@ -366,7 +366,7 @@ void svndump_read(const char *url) if (active_ctx == NODE_CTX) handle_node(); if (active_ctx == REV_CTX) - begin_revision(); + begin_revision(local_ref); active_ctx = NODE_CTX; reset_node_ctx(val); break; @@ -463,7 +463,7 @@ void svndump_read(const char *url) if (active_ctx == NODE_CTX) handle_node(); if (active_ctx == REV_CTX) - begin_revision(); + begin_revision(local_ref); if (active_ctx != DUMP_CTX) end_revision(); } -- cgit v1.2.1