I don't deal with binary patches ever, so I failed to notice
binary deltas are supported in addition to the more common
literals.

A quick check of apply.c in git.git confirms "delta" and
"literal" are the only binary patch classes we can expect.
---
 lib/PublicInbox/SearchIdx.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm
index cbfe7816..bdb84fc7 100644
--- a/lib/PublicInbox/SearchIdx.pm
+++ b/lib/PublicInbox/SearchIdx.pm
@@ -263,10 +263,10 @@ sub index_diff ($$$) {
        while (defined($_ = shift @l)) {
                if ($in_diff && /^GIT binary patch/) {
                        push @$xnq, $_;
-                       while (@l && $l[0] =~ /^literal /) {
+                       while (@l && $l[0] =~ /^(?:literal|delta) /) {
                                # TODO allow searching by size range?
                                # allows searching by exact size via:
-                               # "literal $SIZE"
+                               # "literal $SIZE" or "delta $SIZE"
                                push @$xnq, shift(@l);
 
                                # skip base85 and empty lines

Reply via email to