diff options
author | Eric Wong <e@80x24.org> | 2021-01-27 03:42:26 -0600 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-01-29 05:04:40 +0000 |
commit | 07225b371bb3258766e135d099588d603506f788 (patch) | |
tree | c1a73efb525e8fe785856bec336d3c4e789d609e /lib/PublicInbox/Gcf2.pm | |
parent | d00d6b8e196f897b02266228f8429eea12fb8e01 (diff) | |
download | public-inbox-07225b371bb3258766e135d099588d603506f788.tar.gz |
And note the PublicInbox::Spawn side effect of setting PERL_INLINE_DIRECTORY.
Diffstat (limited to 'lib/PublicInbox/Gcf2.pm')
-rw-r--r-- | lib/PublicInbox/Gcf2.pm | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/PublicInbox/Gcf2.pm b/lib/PublicInbox/Gcf2.pm index 01b83c96..99f4ae04 100644 --- a/lib/PublicInbox/Gcf2.pm +++ b/lib/PublicInbox/Gcf2.pm @@ -5,7 +5,8 @@ # other libgit2 stuff may go here, too. package PublicInbox::Gcf2; use strict; -use PublicInbox::Spawn qw(which popen_rd); +use v5.10.1; +use PublicInbox::Spawn qw(which popen_rd); # may set PERL_INLINE_DIRECTORY use Fcntl qw(LOCK_EX); use IO::Handle; # autoflush my (%CFG, $c_src, $lockfh); @@ -73,6 +74,7 @@ sub add_alt ($$) { $gcf2->add_alternate($_) for @abs_alt; } $gcf2->add_alternate($objdir); + 1; } # Usage: $^X -MPublicInbox::Gcf2 -e PublicInbox::Gcf2::loop @@ -86,7 +88,7 @@ sub loop () { while (<STDIN>) { chomp; my ($oid, $git_dir) = split(/ /, $_, 2); - $seen{$git_dir}++ or add_alt($gcf2, "$git_dir/objects"); + $seen{$git_dir} //= add_alt($gcf2, "$git_dir/objects"); if (!$gcf2->cat_oid(1, $oid)) { # retry once if missing. We only get unabbreviated OIDs # from SQLite or Xapian DBs, here, so malicious clients @@ -94,8 +96,7 @@ sub loop () { warn "I: $$ $oid missing, retrying in $git_dir\n"; $gcf2 = new(); - %seen = ($git_dir => 1); - add_alt($gcf2, "$git_dir/objects"); + %seen = ($git_dir => add_alt($gcf2,"$git_dir/objects")); if ($gcf2->cat_oid(1, $oid)) { warn "I: $$ $oid found after retry\n"; |