From 21d3e01f609c8a6111dc5003638043d65ed721de Mon Sep 17 00:00:00 2001 From: "Eric Wong (Contractor, The Linux Foundation)" Date: Mon, 19 Mar 2018 08:14:58 +0000 Subject: [PATCH] v2writable: add DEBUG_DIFF env support This can help us track down some differences during import, if needed. --- lib/PublicInbox/V2Writable.pm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index 8e1363ea..30ca9cec 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -406,6 +406,26 @@ sub import_init { $self->{im} = $im; } +# XXX experimental +sub diff ($$$) { + my ($mid, $cur, $new) = @_; + use File::Temp qw(tempfile); + use PublicInbox::Spawn qw(spawn); + + my ($ah, $an) = tempfile('email-cur-XXXXXXXX'); + print $ah $cur->as_string or die "print: $!"; + close $ah or die "close: $!"; + my ($bh, $bn) = tempfile('email-new-XXXXXXXX'); + print $bh $new->as_string or die "print: $!"; + close $bh or die "close: $!"; + my $cmd = [ qw(diff -u), $an, $bn ]; + print STDERR "# MID conflict <$mid>\n"; + my $pid = spawn($cmd, undef, { 1 => 2 }); + defined $pid or die "diff failed to spawn $!"; + waitpid($pid, 0) == $pid or die "diff did not finish"; + unlink($an, $bn); +} + sub lookup_content { my ($self, $mime, $mid) = @_; my $ibx = $self->{-inbox}; @@ -427,6 +447,10 @@ sub lookup_content { $found = $smsg; return 0; # break out of loop } + + # XXX DEBUG_DIFF is experimental and may be removed + diff($mid, $cur, $mime) if $ENV{DEBUG_DIFF}; + 1; # continue }); $found; -- 2.44.0