X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=vcs-svn%2Fsvndump.c;h=2ad2c307dd6e8f4bddf5cbd9c588973a085bf870;hb=094574b32b799af01e5c0e0a44c2f41eb4a3f671;hp=53d0215d2d8f38fee589321890c9305c8da4d2c5;hpb=b720c75afde3d813588fdfc84f762ef947f5587a;p=git.git diff --git a/vcs-svn/svndump.c b/vcs-svn/svndump.c index 53d0215d2..2ad2c307d 100644 --- a/vcs-svn/svndump.c +++ b/vcs-svn/svndump.c @@ -51,14 +51,14 @@ static struct { } rev_ctx; static struct { - uint32_t uuid, url; + uint32_t version, uuid, url; } dump_ctx; static struct { uint32_t svn_log, svn_author, svn_date, svn_executable, svn_special, uuid, revision_number, node_path, node_kind, node_action, node_copyfrom_path, node_copyfrom_rev, text_content_length, - prop_content_length, content_length; + prop_content_length, content_length, svn_fs_dump_format_version; } keys; static void reset_node_ctx(char *fname) @@ -85,6 +85,7 @@ static void reset_rev_ctx(uint32_t revision) static void reset_dump_ctx(uint32_t url) { dump_ctx.url = url; + dump_ctx.version = 1; dump_ctx.uuid = ~0; } @@ -105,6 +106,7 @@ static void init_keys(void) keys.text_content_length = pool_intern("Text-content-length"); keys.prop_content_length = pool_intern("Prop-content-length"); keys.content_length = pool_intern("Content-length"); + keys.svn_fs_dump_format_version = pool_intern("SVN-fs-dump-format-version"); } static void read_props(void) @@ -206,7 +208,12 @@ void svndump_read(const char *url) *val++ = '\0'; key = pool_intern(t); - if (key == keys.uuid) { + if (key == keys.svn_fs_dump_format_version) { + dump_ctx.version = atoi(val); + if (dump_ctx.version > 2) + die("expected svn dump format version <= 2, found %"PRIu32, + dump_ctx.version); + } else if (key == keys.uuid) { dump_ctx.uuid = pool_intern(val); } else if (key == keys.revision_number) { if (active_ctx == NODE_CTX)