I'm not sure how combining SHA-1 and SHA-256 in a single git repo will work, eventually. But this is an obvious place to do the right thing if we ever see a 64-byte hex string (unless git adds support for another hash which uses 64-byte hex string representations, which would break many assumptions elsewhere, too...). --- lib/PublicInbox/LeiMailSync.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/PublicInbox/LeiMailSync.pm b/lib/PublicInbox/LeiMailSync.pm index ea4d48c1..308b1695 100644 --- a/lib/PublicInbox/LeiMailSync.pm +++ b/lib/PublicInbox/LeiMailSync.pm @@ -9,6 +9,7 @@ use parent qw(PublicInbox::Lock); use DBI qw(:sql_types); # SQL_BLOB use PublicInbox::ContentHash qw(git_sha); use Carp (); +use PublicInbox::Git qw(%HEXLEN2SHA); sub dbh_new { my ($self) = @_; @@ -457,7 +458,8 @@ WHERE b.oidbin = ? local $/; my $raw = <$fh>; if ($vrfy) { - my $got = git_sha(1, \$raw)->hexdigest; + my $sha = $HEXLEN2SHA{length($oidhex)}; + my $got = git_sha($sha, \$raw)->hexdigest; if ($got ne $oidhex) { warn "$f changed $oidhex => $got\n"; next;