When passing an option '--foo' that it does not recognize, the
aggregate.perl script should die with an helpful error message
like:

  unknown option '--foo' at ./aggregate.perl line 80.

rather than:

  fatal: Needed a single revision
  rev-parse --verify --foo: command returned error: 128

While at it let's also prevent something like
'foo--sort-by=regression' to be handled as if
'--sort-by=regression' had been used.

Signed-off-by: Christian Couder <chrisc...@tuxfamily.org>
---
 t/perf/aggregate.perl | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/t/perf/aggregate.perl b/t/perf/aggregate.perl
index 48637ef64b..2cc9eb0ac5 100755
--- a/t/perf/aggregate.perl
+++ b/t/perf/aggregate.perl
@@ -46,7 +46,7 @@ while (scalar @ARGV) {
                shift @ARGV;
                next;
        }
-       if ($arg =~ /--sort-by(?:=(.*))?/) {
+       if ($arg =~ /^--sort-by(?:=(.*))?$/) {
                shift @ARGV;
                if (defined $1) {
                        $sortby = $1;
@@ -76,6 +76,9 @@ while (scalar @ARGV) {
                }
                next;
        }
+       if ($arg =~ /^--.+$/) {
+               die "unknown option '$arg'";
+       }
        last if -f $arg or $arg eq "--";
        if (! -d $arg) {
                my $rev = Git::command_oneline(qw(rev-parse --verify), $arg);
-- 
2.17.0.257.g28b659db43

Reply via email to