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