From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 5C1921F9F3 for ; Wed, 5 May 2021 17:49:46 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 3/3] lei rediff: do not automatically store patches/mails Date: Wed, 5 May 2021 17:49:44 +0000 Message-Id: <20210505174944.69155-4-e@80x24.org> In-Reply-To: <20210505174944.69155-1-e@80x24.org> References: <20210505174944.69155-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: 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 {