]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t/perf: don't depend on Git.pm
authorJeff King <peff@peff.net>
Mon, 25 Nov 2019 16:47:20 +0000 (11:47 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 27 Nov 2019 01:53:36 +0000 (10:53 +0900)
The perf suite's aggregate.perl depends on Git.pm, which is a mild
annoyance if you've built git with NO_PERL. It turns out that the only
thing we use it for is a single call of the command_oneline() helper.
We can just replace this with backticks or similar.

Annoyingly, perl has no backtick equivalent that avoids a shell eval,
which means our $arg would require quoting. This probably doesn't matter
for our purposes, but it's better to be safe and model good style. So
we'll just provide a short helper around open(), which takes its
arguments as a list.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/perf/aggregate.perl

index 66554d216122d26699e425b35166de460fa3821f..a46ef67a2b19c007ef219e02ddba4d38a3715e8b 100755 (executable)
@@ -4,7 +4,6 @@ use lib '../../perl/build/lib';
 use strict;
 use warnings;
 use Getopt::Long;
-use Git;
 use Cwd qw(realpath);
 
 sub get_times {
@@ -85,6 +84,11 @@ sub format_size {
        return $out;
 }
 
+sub sane_backticks {
+       open(my $fh, '-|', @_);
+       return <$fh>;
+}
+
 my (@dirs, %dirnames, %dirabbrevs, %prefixes, @tests,
     $codespeed, $sortby, $subsection, $reponame);
 
@@ -102,7 +106,8 @@ while (scalar @ARGV) {
        my $prefix = '';
        last if -f $arg or $arg eq "--";
        if (! -d $arg) {
-               my $rev = Git::command_oneline(qw(rev-parse --verify), $arg);
+               my $rev = sane_backticks(qw(git rev-parse --verify), $arg);
+               chomp $rev;
                $dir = "build/".$rev;
        } elsif ($arg eq '.') {
                $dir = '.';