From: Charles McGarvey Date: Tue, 12 Nov 2019 05:57:51 +0000 (-0700) Subject: require git 1.8.5 because of the -C flag X-Git-Tag: v0.42~7 X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fgit-codeowners;a=commitdiff_plain;h=20d609473454c52a00daa59ff30214890ead4211 require git 1.8.5 because of the -C flag --- diff --git a/bin/git-codeowners b/bin/git-codeowners index 231b16b..7262df4 100755 --- a/bin/git-codeowners +++ b/bin/git-codeowners @@ -169,6 +169,11 @@ C environment variable if desired, like this: The list of available modules is at L. +=head1 CAVEATS + +=for :list +* Some commands require F (at least version 1.8.5). + =cut # FATPACK - Do not remove this line. diff --git a/t/app-codeowners-util.t b/t/app-codeowners-util.t index 93fdce4..4366fda 100644 --- a/t/app-codeowners-util.t +++ b/t/app-codeowners-util.t @@ -72,7 +72,8 @@ exit; sub _can_git { my ($version) = run_git('--version'); - return $version; + note "Found: $version" if $version; + return $version && $version ge 'git version 1.8.5'; # for -C flag } sub _setup_git_repo { diff --git a/t/app-codeowners.t b/t/app-codeowners.t index 5d37841..8be4287 100644 --- a/t/app-codeowners.t +++ b/t/app-codeowners.t @@ -13,40 +13,40 @@ use Path::Tiny qw(path tempdir); use Test::More; my $can_git = _can_git(); -plan skip_all => 'Cannot run git' if !$can_git; # Set progname so that pod2usage knows how to find the script after we chdir $0 = path($Bin)->parent->child('bin/git-codeowners')->absolute; $ENV{NO_COLOR} = 1; -subtest 'basic options' => sub { - my $repodir = _setup_git_repo(); - my $chdir = pushd($repodir); +sub run(&) { ## no critic (Subroutines::ProhibitSubroutinePrototypes) + my $code = shift; + capture { exit_code { $code->() } }; +} - my ($stdout, $stderr, $exit) = capture { exit_code { App::Codeowners->main('--help') } }; +subtest 'basic options' => sub { + my ($stdout, $stderr, $exit) = run { App::Codeowners->main('--help') }; is($exit, 0, 'exited 0 when --help'); like($stdout, qr/Usage:/, 'correct --help output') or diag $stdout; - ($stdout, $stderr, $exit) = capture { exit_code { App::Codeowners->main('--version') } }; + ($stdout, $stderr, $exit) = run { App::Codeowners->main('--version') }; is($exit, 0, 'exited 0 when --version'); like($stdout, qr/git-codeowners [\d.]+\n/, 'correct --version output') or diag $stdout; }; subtest 'bad options' => sub { - my $repodir = _setup_git_repo(); - my $chdir = pushd($repodir); - - my ($stdout, $stderr, $exit) = capture { exit_code { App::Codeowners->main(qw{show --not-an-option}) } }; + my ($stdout, $stderr, $exit) = run { App::Codeowners->main(qw{show --not-an-option}) }; is($exit, 2, 'exited with error on bad option'); like($stderr, qr/Unknown option: not-an-option/, 'correct error message') or diag $stderr; }; subtest 'show' => sub { + plan skip_all => 'Cannot run git' if !$can_git; + my $repodir = _setup_git_repo(); my $chdir = pushd($repodir); - my ($stdout, $stderr, $exit) = capture { exit_code { App::Codeowners->main(qw{-f %F;%O show}) } }; + my ($stdout, $stderr, $exit) = run { App::Codeowners->main(qw{-f %F;%O show}) }; is($exit, 0, 'exited without error'); is($stdout, <<'END', 'correct output'); CODEOWNERS; @@ -54,7 +54,7 @@ a/b/c/bar.txt;@snickers foo.txt;@twix END - ($stdout, $stderr, $exit) = capture { exit_code { App::Codeowners->main(qw{-f %F;%O;%P show}) } }; + ($stdout, $stderr, $exit) = run { App::Codeowners->main(qw{-f %F;%O;%P show}) }; is($exit, 0, 'exited without error'); is($stdout, <<'END', 'correct output'); CODEOWNERS;; @@ -65,7 +65,7 @@ END subtest 'format json' => sub { plan skip_all => 'No JSON::MaybeXS' if !eval { require JSON::MaybeXS }; - ($stdout, $stderr, $exit) = capture { exit_code { App::Codeowners->main(qw{-f json show --no-project}) } }; + ($stdout, $stderr, $exit) = run { App::Codeowners->main(qw{-f json show --no-project}) }; is($exit, 0, 'exited without error'); my $expect = '[{"File":"CODEOWNERS","Owner":null},{"File":"a/b/c/bar.txt","Owner":["@snickers"]},{"File":"foo.txt","Owner":["@twix"]}]'; is($stdout, $expect, 'correct output with json format'); @@ -77,7 +77,8 @@ exit; sub _can_git { my ($version) = run_git('--version'); - return $version; + note "Found: $version" if $version; + return $version && $version ge 'git version 1.8.5'; # for -C flag } sub _setup_git_repo {