X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=lib%2FPublicInbox%2FV2Writable.pm;h=34dd139b8ab82495296ddb9abd76847dee54b5fc;hp=b42e6a13f1eafab89724ad81aa6f65bd78be0fd9;hb=1218a4126807951a0f47286338dc04d7f197bb78;hpb=6e7f54e4031e8ea5f5e5837befe0c1e2b4ec43f9 diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index b42e6a13..34dd139b 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -150,9 +150,15 @@ sub add { # indexes a message, returns true if checkpointing is needed sub do_idx ($$$$$$$) { my ($self, $msgref, $mime, $len, $num, $oid, $mid0) = @_; - $self->{over}->add_overview($mime, $len, $num, $oid, $mid0); + my $smsg = bless { + bytes => $len, + num => $num, + blob => $oid, + mid => $mid0, + }, 'PublicInbox::Smsg'; + $self->{over}->add_overview($mime, $smsg, $self); my $idx = idx_shard($self, $num % $self->{shards}); - $idx->index_raw($len, $msgref, $num, $oid, $mid0, $mime); + $idx->index_raw($len, $msgref, $num, $oid, $mid0, $mime, $self); my $n = $self->{transact_bytes} += $len; $n >= (PublicInbox::SearchIdx::BATCH_BYTES * $self->{shards}); } @@ -176,7 +182,7 @@ sub _add { defined $num or return; # duplicate defined $mid0 or die "BUG: $mid0 undefined\n"; my $im = $self->importer; - my $cmt = $im->add($mime); + my $cmt = $im->add($mime, undef, $self); # sets $self->{(au|co)time} $cmt = $im->get_mark($cmt); $self->{last_commit}->[$self->{epoch_max}] = $cmt; @@ -1266,15 +1272,17 @@ sub index_epoch ($$$) { $pr->("$i.git indexing $range\n"); } - my @cmd = qw(log --raw -r --pretty=tformat:%H + my @cmd = qw(log --raw -r --pretty=tformat:%H.%at.%ct --no-notes --no-color --no-abbrev --no-renames); my $fh = $self->{reindex_pipe} = $git->popen(@cmd, $range); my $cmt; while (<$fh>) { chomp; $self->{current_info} = "$i.git $_"; - if (/\A$x40$/o && !defined($cmt)) { - $cmt = $_; + if (/\A($x40)\.([0-9]+)\.([0-9]+)$/o) { + $cmt //= $1; + $self->{autime} = $2; + $self->{cotime} = $3; } elsif (/\A:\d{6} 100644 $x40 ($x40) [AM]\tm$/o) { reindex_oid($self, $sync, $git, $1); } elsif (/\A:\d{6} 100644 $x40 ($x40) [AM]\td$/o) {