my $dir = tempdir('pi-git-XXXXXX', TMPDIR => 1, CLEANUP => 1);
use PublicInbox::Spawn qw(popen_rd);
-eval { require IPC::Run } or plan skip_all => 'IPC::Run missing';
use_ok 'PublicInbox::Git';
{
is(system(qw(git init -q --bare), $dir), 0, 'created git directory');
- my $cmd = [ 'git', "--git-dir=$dir", 'fast-import', '--quiet' ];
-
my $fi_data = './t/git.fast-import-data';
ok(-r $fi_data, "fast-import data readable (or run test at top level)");
- IPC::Run::run($cmd, '<', $fi_data);
+ local $ENV{GIT_DIR} = $dir;
+ system("git fast-import --quiet <$fi_data");
is($?, 0, 'fast-import succeeded');
}
my $size = -s $big_data;
ok($size > 8192, 'file is big enough');
- my $buf = '';
- IPC::Run::run($cmd, '<', $big_data, '>', \$buf);
+ my $buf = do {
+ local $ENV{GIT_DIR} = $dir;
+ `git hash-object -w --stdin <$big_data`;
+ };
is(0, $?, 'hashed object successfully');
chomp $buf;
use PublicInbox::Spawn qw(which);
use File::Temp qw/tempdir/;
require './t/common.perl';
-my @mods = qw(URI::Escape Plack::Builder IPC::Run Digest::SHA
+my @mods = qw(URI::Escape Plack::Builder Digest::SHA
IO::Compress::Gzip IO::Uncompress::Gunzip HTTP::Tiny);
foreach my $mod (@mods) {
eval("require $mod") or plan skip_all => "$mod missing for $0";
use_ok 'PublicInbox::Git';
-my $fi_data = './t/git.fast-import-data';
my $tmpdir = tempdir('www_listing-tmp-XXXXXX', TMPDIR => 1, CLEANUP => 1);
my $bare = PublicInbox::Git->new("$tmpdir/bare.git");
is(system(qw(git init -q --bare), $bare->{git_dir}), 0, 'git init --bare');
is(PublicInbox::WwwListing::fingerprint($bare), undef,
'empty repo has no fingerprint');
-
-my $cmd = [ 'git', "--git-dir=$bare->{git_dir}", qw(fast-import --quiet) ];
-ok(IPC::Run::run($cmd, '<', $fi_data), 'fast-import');
+{
+ my $fi_data = './t/git.fast-import-data';
+ local $ENV{GIT_DIR} = $bare->{git_dir};
+ is(system("git fast-import --quiet <$fi_data"), 0, 'fast-import');
+}
like(PublicInbox::WwwListing::fingerprint($bare), qr/\A[a-f0-9]{40}\z/,
'got fingerprint with non-empty repo');