about summary refs log tree commit homepage
path: root/lib/PublicInbox/RepoSnapshot.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/RepoSnapshot.pm')
-rw-r--r--lib/PublicInbox/RepoSnapshot.pm12
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/PublicInbox/RepoSnapshot.pm b/lib/PublicInbox/RepoSnapshot.pm
index 4c372569..bff97bc8 100644
--- a/lib/PublicInbox/RepoSnapshot.pm
+++ b/lib/PublicInbox/RepoSnapshot.pm
@@ -50,15 +50,13 @@ sub ver_check { # git->check_async callback
                         delete($ctx->{env}->{'qspawn.wcb'})->(r(404));
         } else { # found, done:
                 $ctx->{etag} = $oid;
-                my @cfg;
+                my $cmd = $ctx->{git}->cmd;
                 if (my $cmd = $FMT_CFG{$ctx->{snap_fmt}}) {
-                        @cfg = ('-c', "tar.$ctx->{snap_fmt}.command=$cmd");
+                        push @$cmd, '-c', "tar.$ctx->{snap_fmt}.command=$cmd";
                 }
-                my $qsp = PublicInbox::Qspawn->new(['git', @cfg,
-                                "--git-dir=$ctx->{git}->{git_dir}", 'archive',
-                                "--prefix=$ctx->{snap_pfx}/",
-                                "--format=$ctx->{snap_fmt}", $treeish], undef,
-                                { quiet => 1 });
+                push @$cmd, 'archive', "--prefix=$ctx->{snap_pfx}/",
+                                "--format=$ctx->{snap_fmt}", $treeish;
+                my $qsp = PublicInbox::Qspawn->new($cmd, undef, { quiet => 1 });
                 $qsp->psgi_yield($ctx->{env}, undef, \&archive_hdr, $ctx);
         }
 }