diff options
author | James Y Knight <foom@fuhm.net> | 2007-05-24 00:37:06 -0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-05-26 01:17:58 -0700 |
commit | 20b3d206acbbb042c7ad5f42d36ff8d036a538c5 (patch) | |
tree | 445101c83abb5dc70d9abc7418cd13aa28db01d7 | |
parent | a23bfaed7da90ccdc75cbfd0099741080381f60a (diff) | |
download | git-20b3d206acbbb042c7ad5f42d36ff8d036a538c5.tar.gz |
Fix git-svn to handle svn not reporting the md5sum of a file, and test.
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-x | git-svn.perl | 2 | ||||
-rwxr-xr-x | t/t9112-git-svn-md5less-file.sh | 45 |
2 files changed, 46 insertions, 1 deletions
diff --git a/git-svn.perl b/git-svn.perl index eda9969f50..fa46236ae8 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -2477,7 +2477,7 @@ sub close_file { $md5->addfile($fh); my $got = $md5->hexdigest; die "Checksum mismatch: $path\n", - "expected: $exp\n got: $got\n" if ($got ne $exp); + "expected: $exp\n got: $got\n" if (defined $exp && $got ne $exp); sysseek($fh, 0, 0) or croak $!; if ($fb->{mode_b} == 120000) { sysread($fh, my $buf, 5) == 5 or croak $!; diff --git a/t/t9112-git-svn-md5less-file.sh b/t/t9112-git-svn-md5less-file.sh new file mode 100755 index 0000000000..08313bb545 --- /dev/null +++ b/t/t9112-git-svn-md5less-file.sh @@ -0,0 +1,45 @@ +test_description='test that git handles an svn repository with missing md5sums' + +. ./lib-git-svn.sh + +# Loading a node from a svn dumpfile without a Text-Content-Length +# field causes svn to neglect to store or report an md5sum. (it will +# calculate one if you had put Text-Content-Length: 0). This showed +# up in a repository creted with cvs2svn. + +cat > dumpfile.svn <<EOF +SVN-fs-dump-format-version: 1 + +Revision-number: 1 +Prop-content-length: 98 +Content-length: 98 + +K 7 +svn:log +V 0 + +K 10 +svn:author +V 4 +test +K 8 +svn:date +V 27 +2007-05-06T12:37:01.153339Z +PROPS-END + +Node-path: md5less-file +Node-kind: file +Node-action: add +Prop-content-length: 10 +Content-length: 10 + +PROPS-END + +EOF + +test_expect_success 'load svn dumpfile' "svnadmin load $rawsvnrepo < dumpfile.svn" + +test_expect_success 'initialize git-svn' "git-svn init $svnrepo" +test_expect_success 'fetch revisions from svn' 'git-svn fetch' +test_done |