use base qw(PublicInbox::Search PublicInbox::Lock);
use PublicInbox::MIME;
use PublicInbox::InboxWritable;
-use PublicInbox::MID qw/mid_clean id_compress mid_mime mids/;
+use PublicInbox::MID qw/mid_clean id_compress mid_mime mids_for_index/;
use PublicInbox::MsgIter;
use Carp qw(croak);
use POSIX qw(strftime);
$in_diff = $self->index_old_diff_fn(\%seen, $fa, $fb,
$xnq);
} elsif (m!^--- ("?a/.+)!) {
- my $fn = (split('/', git_unquote($1), 2))[1];
+ my $fn = $1;
+ $fn = (split('/', git_unquote($fn), 2))[1];
$seen{$fn}++ or $self->index_diff_inc($fn, 'XDFN', $xnq);
$in_diff = 1;
} elsif (m!^\+\+\+ ("?b/.+)!) {
- my $fn = (split('/', git_unquote($1), 2))[1];
+ my $fn = $1;
+ $fn = (split('/', git_unquote($fn), 2))[1];
$seen{$fn}++ or $self->index_diff_inc($fn, 'XDFN', $xnq);
$in_diff = 1;
} elsif (/^--- (\S+)/) {
sub add_message {
# mime = Email::MIME object
my ($self, $mime, $bytes, $num, $oid, $mid0) = @_;
- my $mids = mids($mime->header_obj);
+ my $mids = mids_for_index($mime->header_obj);
$mid0 = $mids->[0] unless defined $mid0; # v1 compatibility
unless (defined $num) { # v1
$self->_msgmap_init;
$newest ||= $latest;
}
}
+ close($log) or die "git log failed: \$?=$?";
# get the leftovers
foreach my $blob (keys %D) {
my $mime = do_cat_mail($git, $blob, \$bytes) or next;
--no-notes --no-color --no-renames
--diff-filter=AM), $range);
++$fcount while <$fh>;
- close $fh;
+ close $fh or die "git log failed: \$?=$?";
my $high = $self->{mm}->num_highwater;
$pr->("$fcount\n") if $pr; # continue previous line
$self->{ntodo} = $fcount;
my $xdb = $self->begin_txn_lazy;
my $mm = _msgmap_init($self);
do {
- $xlog = undef;
+ if ($xlog) {
+ close($xlog) or die "git log failed: \$?=$?";
+ $xlog = undef;
+ }
$last_commit = _last_x_commit($self, $mm);
$lx = reindex_from($opts->{reindex}, $last_commit);