diff options
author | Eric Wong (Contractor, The Linux Foundation) <e@80x24.org> | 2018-03-19 08:14:58 +0000 |
---|---|---|
committer | Eric Wong (Contractor, The Linux Foundation) <e@80x24.org> | 2018-03-19 08:16:34 +0000 |
commit | 21d3e01f609c8a6111dc5003638043d65ed721de (patch) | |
tree | 66afd6045f8ae4fd9e3147cd3a8293407d80c08f | |
parent | 41082521a8091b733eb61f8bb9f0e9f76ed4a4cb (diff) | |
download | public-inbox-21d3e01f609c8a6111dc5003638043d65ed721de.tar.gz |
This can help us track down some differences during import, if needed.
-rw-r--r-- | lib/PublicInbox/V2Writable.pm | 24 |
1 files changed, 24 insertions, 0 deletions
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; |