We can use a temporary lei/store to avoid cluttering up
future search results. This is especially useful since
we expect "lei rediff" to be useful for non-email diffs
and individual attachments, too.
---
lib/PublicInbox/LeiRediff.pm | 9 +++++----
t/solver_git.t | 3 +++
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/lib/PublicInbox/LeiRediff.pm b/lib/PublicInbox/LeiRediff.pm
index d73e3e28..deb6c3ae 100644
--- a/lib/PublicInbox/LeiRediff.pm
+++ b/lib/PublicInbox/LeiRediff.pm
@@ -70,7 +70,6 @@ EOM
my $tb = $ta;
$tb =~ tr!A!B!;
my $lei = $self->{lei};
- my $wait = delete($self->{-do_done}) ? $lei->{sto}->ipc_do('done') : 0;
while (my ($oid_a, $oid_b, $pa, $pb, $ma, $mb) = splice(@$ctxq, 0, 6)) {
my $xa = $blob->{$oid_a} //= solve_1($self, $oid_a,
{ path_b => $pa });
@@ -193,8 +192,8 @@ sub extract_oids { # Eml each_part callback
sub input_eml_cb { # callback for all emails
my ($self, $eml) = @_;
- $self->{lei}->{sto}->ipc_do('add_eml', $eml);
- $self->{-do_done} = 1;
+ $self->{tmp_sto}->add_eml($eml);
+ $self->{tmp_sto}->done;
$eml->each_part(\&extract_oids, $self, 1);
}
@@ -239,7 +238,9 @@ sub ipc_atfork_child {
binmode $lei->{1}, ':utf8';
$self->{blobs} = {}; # oidhex => filename
$self->{rdtmp} = File::Temp->newdir('lei-rediff-XXXX', TMPDIR => 1);
- $self->{rmt} = [ map {
+ $self->{tmp_sto} = PublicInbox::LeiStore->new(
+ "$self->{rdtmp}/tmp.store", { creat => 1 });
+ $self->{rmt} = [ $self->{tmp_sto}->search, map {
PublicInbox::LeiRemote->new($lei, $_)
} $self->{lxs}->remotes ];
$self->{gits} = [ map {
diff --git a/t/solver_git.t b/t/solver_git.t
index ad0c295b..13e478b3 100644
--- a/t/solver_git.t
+++ b/t/solver_git.t
@@ -86,6 +86,9 @@ index 15ac20eb..771486c4
EOM
ok(index($lei_out, $exp) >= 0,
'preserve mode, regen header + context from -U0 patch');
+ my $e = { GIT_DIR => "$ENV{HOME}/.local/share/lei/store/ALL.git" };
+ my @x = xqx([qw(git cat-file --batch-all-objects --batch-check)], $e);
+ is_deeply(\@x, [], 'no objects stored') or diag explain(\@x);
});
test_lei({tmpdir => "$tmpdir/index-eml-only"}, sub {
--
unsubscribe: one-click, see List-Unsubscribe header
archive: https://public-inbox.org/meta/