about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/ExtMsg.pm39
-rw-r--r--lib/PublicInbox/Inbox.pm5
2 files changed, 7 insertions, 37 deletions
diff --git a/lib/PublicInbox/ExtMsg.pm b/lib/PublicInbox/ExtMsg.pm
index c71510f5..a6f516df 100644
--- a/lib/PublicInbox/ExtMsg.pm
+++ b/lib/PublicInbox/ExtMsg.pm
@@ -31,30 +31,19 @@ sub ext_msg {
         my $cur = $ctx->{-inbox};
         my $mid = $ctx->{mid};
 
-        eval { require PublicInbox::Search };
-        my $have_xap = $@ ? 0 : 1;
-        my (@nox, @ibx, @found);
+        eval { require PublicInbox::Msgmap };
+        my $have_mm = $@ ? 0 : 1;
+        my (@ibx, @found);
 
         $ctx->{www}->{pi_config}->each_inbox(sub {
                 my ($other) = @_;
                 return if $other->{name} eq $cur->{name} || !$other->base_url;
 
-                my $s = $other->search;
-                if (!$s) {
-                        push @nox, $other;
-                        return;
-                }
-
-                # try to find the URL with Xapian to avoid forking
-                my $doc_id = eval { $s->find_first_doc_id('Q' . $mid) };
-                if ($@) {
-                        # xapian not configured properly for this repo
-                        push @nox, $other;
-                        return;
-                }
+                my $mm = $other->mm or return;
 
-                # maybe we found it!
-                if (defined $doc_id) {
+                # try to find the URL with Msgmap to avoid forking
+                my $num = $mm->num_for($mid);
+                if (defined $num) {
                         push @found, $other;
                 } else {
                         # no point in trying the fork fallback if we
@@ -66,20 +55,6 @@ sub ext_msg {
 
         return exact($ctx, \@found, $mid) if @found;
 
-        # Xapian not installed or configured for some repos,
-        # do a full MID check (this is expensive...):
-        if (@nox) {
-                my $path = mid2path($mid);
-                foreach my $other (@nox) {
-                        my (undef, $type, undef) = $other->path_check($path);
-
-                        if ($type && $type eq 'blob') {
-                                push @found, $other;
-                        }
-                }
-        }
-        return exact($ctx, \@found, $mid) if @found;
-
         # fall back to partial MID matching
         my $n_partial = 0;
         my @partial;
diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm
index f71493a0..706089ca 100644
--- a/lib/PublicInbox/Inbox.pm
+++ b/lib/PublicInbox/Inbox.pm
@@ -290,11 +290,6 @@ sub smsg_mime {
         }
 }
 
-sub path_check {
-        my ($self, $path) = @_;
-        git($self)->check('HEAD:'.$path);
-}
-
 sub mid2num($$) {
         my ($self, $mid) = @_;
         my $mm = mm($self) or return;