All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Björn Steinbrink" <B.Steinbrink@gmx.de>
Cc: Adam Roben <aroben@apple.com>,
	git@vger.kernel.org, Eric Wong <normalperson@yhbt.net>
Subject: Re: [BISECTED] git-svn: "Failed to read object ..." during clone
Date: Tue, 27 May 2008 23:32:59 -0700	[thread overview]
Message-ID: <7vskw3vsys.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <20080528030128.GA28904@atjola.homenet> (Björn Steinbrink's message of "Wed, 28 May 2008 05:01:28 +0200")

Björn Steinbrink <B.Steinbrink@gmx.de> writes:

> Hi Adam,
>
> when cloning the SVN repository at svn://svn.debian.org/estron/ git-svn bails
> out with:
> Failed to read object e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 at
> /usr/local/bin/git-svn line 3195, <GEN36> line 645.

Heh, I should have been more careful.  The series introduces Git::cat_blob
that returns the size of a blob but the interface is broken and signals
error by returning zero.  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 is a
zero sized blob.

Would this be enough?

---

 git-svn.perl |    4 ++--
 perl/Git.pm  |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index 37976f2..3a6eb1c 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -3191,7 +3191,7 @@ sub apply_textdelta {
 	if ($fb->{blob}) {
 		print $base 'link ' if ($fb->{mode_a} == 120000);
 		my $size = $::_repository->cat_blob($fb->{blob}, $base);
-		die "Failed to read object $fb->{blob}" unless $size;
+		die "Failed to read object $fb->{blob}" if ($size < 0);
 
 		if (defined $exp) {
 			seek $base, 0, 0 or croak $!;
@@ -3570,7 +3570,7 @@ sub chg_file {
 		$self->change_file_prop($fbat,'svn:special',undef);
 	}
 	my $size = $::_repository->cat_blob($m->{sha1_b}, $fh);
-	croak "Failed to read object $m->{sha1_b}" unless $size;
+	croak "Failed to read object $m->{sha1_b}" if ($size < 0);
 	$fh->flush == 0 or croak $!;
 	seek $fh, 0, 0 or croak $!;
 
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;

  reply	other threads:[~2008-05-28  6:34 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-28  3:01 [BISECTED] git-svn: "Failed to read object ..." during clone Björn Steinbrink
2008-05-28  6:32 ` Junio C Hamano [this message]
2008-05-28  7:28   ` Sam Vilain
2008-05-28 14:19   ` Björn Steinbrink

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=7vskw3vsys.fsf@gitster.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=B.Steinbrink@gmx.de \
    --cc=aroben@apple.com \
    --cc=git@vger.kernel.org \
    --cc=normalperson@yhbt.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.