summaryrefslogtreecommitdiff
path: root/perl
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-05-28 06:33:22 (GMT)
committerJunio C Hamano <gitster@pobox.com>2008-05-28 06:35:55 (GMT)
commitd683a0e00cd4734b4fab704baef1ee76205722be (patch)
tree5bd68609cb1d489f83455bda25200d4050415fd7 /perl
parentb2a42f55bc419352b848751b0763b0a2d1198479 (diff)
downloadgit-d683a0e00cd4734b4fab704baef1ee76205722be.zip
git-d683a0e00cd4734b4fab704baef1ee76205722be.tar.gz
git-d683a0e00cd4734b4fab704baef1ee76205722be.tar.bz2
Git::cat_blob: allow using an empty blob to fix git-svn breakage
Recent "git-svn optimization" series introduced Git::cat_blob() subroutine whose interface was broken in that it returned the size of the blob but signalled an error by returning 0. You can never use an empty blob with such an interface. This fixes the interface to return a negative value to signal an error. Reported by Björn Steinbrink. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'perl')
-rw-r--r--perl/Git.pm4
1 files changed, 2 insertions, 2 deletions
diff --git a/perl/Git.pm b/perl/Git.pm
index 6ba8ee5..d05b633 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -811,12 +811,12 @@ sub cat_blob {
my $description = <$in>;
if ($description =~ / missing$/) {
carp "$sha1 doesn't exist in the repository";
- return 0;
+ return -1;
}
if ($description !~ /^[0-9a-fA-F]{40} \S+ (\d+)$/) {
carp "Unexpected result returned from git cat-file";
- return 0;
+ return -1;
}
my $size = $1;