-# Copyright (C) 2014-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
# License: GPLv2 or later <https://www.gnu.org/licenses/gpl-2.0.txt>
#
# Used to read files from a git repository without excessive forking.
sub git_path ($$) {
my ($self, $path) = @_;
- $self->{-git_path}->{$path} ||= do {
+ $self->{-git_path}->{$path} //= do {
local $/ = "\n";
chomp(my $str = $self->qx(qw(rev-parse --git-path), $path));
$self->{alt_st} = $st; # always a true value
}
+sub object_format {
+ $_[0]->{object_format} //= do {
+ my $fmt = $_[0]->qx(qw(config extensions.objectformat));
+ $fmt eq "sha256\n" ? \'sha256' : \undef;
+ }
+}
+
sub last_check_err {
my ($self) = @_;
my $fh = $self->{err_c} or return;
while (scalar(@{$self->{inflight_c} // []}) ||
scalar(@{$self->{inflight} // []})) {
for my $c ('', '_c') {
- my $q = $self->{"inflight$c"};
+ my $q = $self->{"inflight$c"} or next;
while (@$q) {
my ($req, $cb, $arg) = splice(@$q, 0, 3);
$req = $$req if ref($req);