From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-3.9 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 85F2F203C5 for ; Mon, 28 Nov 2022 05:32:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=80x24.org; s=selector1; t=1669613568; bh=Q+Z9ccUsa01a3ie6UWZ5NkAqZOIEdc3uogN+28VxHVQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=O9yWA2ZEZ7lqqba/hFgNktrB9ryqXKt13vmLBacR7sEPpCT/DhoK8r6b6vtjRAHKb vMExibmuynaDh3CTmesrveFYcsxyLyURKWsjCXlLhIlszy20Z7Kg56dsXaP673lfJl xrydYL4ovX3UROGEWN1MKvBcF6tC9aUdHkDTojI8= From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 74/95] lei_mirror: avoid needless FD passing Date: Mon, 28 Nov 2022 05:32:11 +0000 Message-Id: <20221128053232.291618-75-e@80x24.org> In-Reply-To: <20221128053232.291618-1-e@80x24.org> References: <20221128053232.291618-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Most git processes we invoke don't care about stdin nor stdout, so don't waste cycles and memory dealing with it. stderr passing is added `git config --unset-all remotes.fgrptmp' invocation, though, since that can fail due to I/O errors or OOM. --- lib/PublicInbox/LeiMirror.pm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/PublicInbox/LeiMirror.pm b/lib/PublicInbox/LeiMirror.pm index 2473c74b..7fcb4ebb 100644 --- a/lib/PublicInbox/LeiMirror.pm +++ b/lib/PublicInbox/LeiMirror.pm @@ -300,7 +300,7 @@ sub fgrp_update { qw(update-ref --stdin -z) ]; my $lei = $fgrp->{lei}; $lei->qerr("# @$cmd"); - my $opt = { 0 => $r, 1 => $lei->{1}, 2 => $lei->{2} }; + my $opt = { 0 => $r, 2 => $lei->{2} }; my $pid = spawn($cmd, undef, $opt); close $r or die "close(r): $!"; for my $ref (keys %dst) { @@ -332,7 +332,7 @@ sub pack_refs { my $cmd = [ 'git', "--git-dir=$git_dir", qw(pack-refs --all --prune) ]; $self->{lei}->qerr("# @$cmd"); return if $self->{dry_run}; - my $opt = { 1 => $self->{lei}->{1}, 2 => $self->{lei}->{2} }; + my $opt = { 2 => $self->{lei}->{2} }; $LIVE->{spawn($cmd, undef, $opt)} = [ \&reap_cmd, $self, $cmd ]; } @@ -344,7 +344,7 @@ sub fgrpv_done { pack_refs($first, $first->{-osdir}); # objstore refs always packed for my $fgrp (@$fgrpv) { my $rn = $fgrp->{-remote}; - my %opt = map { $_ => $fgrp->{lei}->{$_} } (0..2); + my %opt = ( 2 => $fgrp->{lei}->{2} ); my $update_ref = $fgrp->{dry_run} ? undef : PublicInbox::OnDestroy->new($$, \&fgrp_update, $fgrp); @@ -401,7 +401,7 @@ sub fgrp_fetch_all { $f, '--unset-all', "remotes.$grp"]; $self->{lei}->qerr("# @$cmd"); if (!$self->{dry_run}) { - $pid = spawn($cmd); + $pid = spawn($cmd, undef, { 2 => $self->{lei}->{2} }); waitpid($pid, 0) // die "waitpid: $!"; die "E: @$cmd: \$?=$?" if ($? && ($? >> 8) != 5); @@ -518,7 +518,7 @@ sub resume_fetch { my ($self, $uri, $fini) = @_; my $dst = $self->{cur_dst} // $self->{dst}; my @git = ('git', "--git-dir=$dst"); - my $opt = +{ map { $_ => $self->{lei}->{$_} } (0..2) }; + my $opt = { 2 => $self->{lei}->{2} }; my $rn = 'origin'; # configurable? for ("url=$uri", "fetch=+refs/*:refs/*", 'mirror=true') { my @kv = split(/=/, $_, 2);