print $w $str, "\n" or wfail;
# v2: we need this for Xapian
- if ($self->{want_object_id}) {
- chomp($self->{last_object_id} = $self->get_mark(":$blob"));
- $self->{last_object} = [ $n, \$str ];
+ if ($self->{want_object_info}) {
+ chomp(my $oid = $self->get_mark(":$blob"));
+ $self->{last_object} = [ $oid, $n, \$str ];
}
my $ref = $self->{ref};
my $commit = $self->{mark}++;
my $im = $self->importer;
my $cmt = $im->add($mime);
$cmt = $im->get_mark($cmt);
- my $oid = $im->{last_object_id};
- my ($len, $msgref) = @{$im->{last_object}};
+ my ($oid, $len, $msgref) = @{$im->{last_object}};
my $nparts = $self->{partitions};
my $part = $num % $nparts;
my ($self, $git, $packed_bytes) = @_;
my $im = PublicInbox::Import->new($git, undef, undef, $self->{-inbox});
$im->{bytes_added} = int($packed_bytes / $PACKING_FACTOR);
- $im->{want_object_id} = 1;
+ $im->{want_object_info} = 1;
$im->{ssoma_lock} = 0;
$im->{path_type} = 'v2';
$self->{im} = $im;
body => "hello world\n",
);
-$im->{want_object_id} = 1 if 'v2';
+$im->{want_object_info} = 1 if 'v2';
like($im->add($mime), qr/\A:\d+\z/, 'added one message');
if ('v2') {
- like($im->{last_object_id}, qr/\A[a-f0-9]{40}\z/, 'got last_object_id');
+ my $info = $im->{last_object};
+ like($info->[0], qr/\A[a-f0-9]{40}\z/, 'got last object_id');
+ is($mime->as_string, ${$info->[2]}, 'string matches');
+ is($info->[1], length(${$info->[2]}), 'length matches');
my @cmd = ('git', "--git-dir=$git->{git_dir}", qw(hash-object --stdin));
my $in = tempfile();
print $in $mime->as_string or die "write failed: $!";
is($?, 0, 'hash-object');
$out->seek(0, SEEK_SET);
chomp(my $hashed_obj = <$out>);
- is($hashed_obj, $im->{last_object_id}, "last_object_id matches exp");
+ is($hashed_obj, $info->[0], "last object_id matches exp");
}
$im->done;