From: Florian Achleitner <florian.achleitner.2.6.31@gmail.com>
To: git@vger.kernel.org, David Michael Barr <davidbarr@google.com>,
Jonathan Nieder <jrnieder@gmail.com>
Cc: florian.achleitner.2.6.31@gmail.com
Subject: [PATCH/RFC v3 06/16] remote-svn, vcs-svn: Enable fetching to private refs.
Date: Tue, 14 Aug 2012 21:13:08 +0200 [thread overview]
Message-ID: <1344971598-8213-7-git-send-email-florian.achleitner.2.6.31@gmail.com> (raw)
In-Reply-To: <1344971598-8213-6-git-send-email-florian.achleitner.2.6.31@gmail.com>
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 'capablilities' command.
Extend svndump and fast-export to allow passing the target ref.
Update svn-fe to be compatible.
Signed-off-by: Florian Achleitner <florian.achleitner.2.6.31@gmail.com>
---
- fix hard-coded ref in test-svn-fe.c. Broke a testcase.
contrib/svn-fe/svn-fe.c | 2 +-
test-svn-fe.c | 2 +-
vcs-svn/fast_export.c | 4 ++--
vcs-svn/fast_export.h | 2 +-
vcs-svn/svndump.c | 14 +++++++-------
vcs-svn/svndump.h | 2 +-
6 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/contrib/svn-fe/svn-fe.c b/contrib/svn-fe/svn-fe.c
index 35db24f..c796cc0 100644
--- a/contrib/svn-fe/svn-fe.c
+++ b/contrib/svn-fe/svn-fe.c
@@ -10,7 +10,7 @@ int main(int argc, char **argv)
{
if (svndump_init(NULL))
return 1;
- svndump_read((argc > 1) ? argv[1] : NULL);
+ svndump_read((argc > 1) ? argv[1] : NULL, "refs/heads/master");
svndump_deinit();
svndump_reset();
return 0;
diff --git a/test-svn-fe.c b/test-svn-fe.c
index 83633a2..cb0d80f 100644
--- a/test-svn-fe.c
+++ b/test-svn-fe.c
@@ -40,7 +40,7 @@ int main(int argc, char *argv[])
if (argc == 2) {
if (svndump_init(argv[1]))
return 1;
- svndump_read(NULL);
+ svndump_read(NULL, "refs/heads/master");
svndump_deinit();
svndump_reset();
return 0;
diff --git a/vcs-svn/fast_export.c b/vcs-svn/fast_export.c
index 1f04697..11f8f94 100644
--- a/vcs-svn/fast_export.c
+++ b/vcs-svn/fast_export.c
@@ -72,7 +72,7 @@ static char gitsvnline[MAX_GITSVN_LINE_LEN];
void fast_export_begin_commit(uint32_t revision, const char *author,
const struct strbuf *log,
const char *uuid, const char *url,
- unsigned long timestamp)
+ unsigned long timestamp, const char *local_ref)
{
static const struct strbuf empty = STRBUF_INIT;
if (!log)
@@ -84,7 +84,7 @@ void fast_export_begin_commit(uint32_t revision, const char *author,
} else {
*gitsvnline = '\0';
}
- printf("commit refs/heads/master\n");
+ printf("commit %s\n", local_ref);
printf("mark :%"PRIu32"\n", revision);
printf("committer %s <%s@%s> %ld +0000\n",
*author ? author : "nobody",
diff --git a/vcs-svn/fast_export.h b/vcs-svn/fast_export.h
index 8823aca..17eb13b 100644
--- a/vcs-svn/fast_export.h
+++ b/vcs-svn/fast_export.h
@@ -11,7 +11,7 @@ void fast_export_delete(const char *path);
void fast_export_modify(const char *path, uint32_t mode, const char *dataref);
void fast_export_begin_commit(uint32_t revision, const char *author,
const struct strbuf *log, const char *uuid,
- const char *url, unsigned long timestamp);
+ const char *url, unsigned long timestamp, const char *local_ref);
void fast_export_end_commit(uint32_t revision);
void fast_export_data(uint32_t mode, off_t len, struct line_buffer *input);
void fast_export_blob_delta(uint32_t mode,
diff --git a/vcs-svn/svndump.c b/vcs-svn/svndump.c
index d81a078..288bb42 100644
--- a/vcs-svn/svndump.c
+++ b/vcs-svn/svndump.c
@@ -299,22 +299,22 @@ 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)
+static void end_revision()
{
if (rev_ctx.revision)
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();
}
diff --git a/vcs-svn/svndump.h b/vcs-svn/svndump.h
index acb5b47..febeecb 100644
--- a/vcs-svn/svndump.h
+++ b/vcs-svn/svndump.h
@@ -3,7 +3,7 @@
int svndump_init(const char *filename);
int svndump_init_fd(int in_fd, int back_fd);
-void svndump_read(const char *url);
+void svndump_read(const char *url, const char *local_ref);
void svndump_deinit(void);
void svndump_reset(void);
--
1.7.9.5
next prev parent reply other threads:[~2012-08-14 19:17 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-14 19:13 [PATCH/RFC v3 00/16] GSOC remote-svn Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 01/16] Implement a remote helper for svn in C Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 02/16] Integrate remote-svn into svn-fe/Makefile Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 03/16] Add svndump_init_fd to allow reading dumps from arbitrary FDs Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 04/16] Connect fast-import to the remote-helper via pipe, adding 'bidi-import' capability Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 05/16] Add documentation for the 'bidi-import' capability of remote-helpers Florian Achleitner
2012-08-14 19:13 ` Florian Achleitner [this message]
2012-08-14 19:13 ` [PATCH/RFC v3 07/16] Add a symlink 'git-remote-svn' in base dir Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 08/16] Allow reading svn dumps from files via file:// urls Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 09/16] vcs-svn: add fast_export_note to create notes Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 10/16] Create a note for every imported commit containing svn metadata Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 11/16] When debug==1, start fast-import with "--stats" instead of "--quiet" Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 12/16] remote-svn: add incremental import Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 13/16] Add a svnrdump-simulator replaying a dump file for testing Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 14/16] transport-helper: add import|export-marks to fast-import command line Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 15/16] remote-svn: add marks-file regeneration Florian Achleitner
2012-08-14 19:13 ` [PATCH/RFC v3 16/16] Add a test script for remote-svn Florian Achleitner
2012-08-15 11:46 ` Florian Achleitner
2012-08-15 19:52 ` [PATCH/RFC v3 14/16] transport-helper: add import|export-marks to fast-import command line Junio C Hamano
2012-08-15 20:20 ` Florian Achleitner
2012-08-15 21:06 ` Florian Achleitner
2012-08-15 19:50 ` [PATCH/RFC v3 11/16] When debug==1, start fast-import with "--stats" instead of "--quiet" Junio C Hamano
2012-08-15 19:49 ` [PATCH/RFC v3 10/16] Create a note for every imported commit containing svn metadata Junio C Hamano
2012-08-15 20:10 ` Florian Achleitner
2012-08-14 20:43 ` [PATCH/RFC v3 07/16] Add a symlink 'git-remote-svn' in base dir Junio C Hamano
2012-08-14 20:46 ` Junio C Hamano
2012-08-15 9:20 ` Florian Achleitner
2012-08-14 20:40 ` [PATCH/RFC v3 04/16] Connect fast-import to the remote-helper via pipe, adding 'bidi-import' capability Junio C Hamano
2012-08-15 12:00 ` Florian Achleitner
2012-08-15 17:41 ` Junio C Hamano
2012-08-14 20:15 ` [PATCH/RFC v3 03/16] Add svndump_init_fd to allow reading dumps from arbitrary FDs Junio C Hamano
2012-08-14 20:14 ` [PATCH/RFC v3 02/16] Integrate remote-svn into svn-fe/Makefile Junio C Hamano
2012-08-15 8:54 ` Florian Achleitner
2012-08-14 20:07 ` [PATCH/RFC v3 01/16] Implement a remote helper for svn in C Junio C Hamano
2012-08-15 12:00 ` Florian Achleitner
2012-08-14 23:59 ` [PATCH/RFC v3 00/16] GSOC remote-svn David Michael Barr
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1344971598-8213-7-git-send-email-florian.achleitner.2.6.31@gmail.com \
--to=florian.achleitner.2.6.31@gmail.com \
--cc=davidbarr@google.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).