| line | true | false | branch | 
 
| 61 | 0 | 0 | unless Data::Validate::Type::is_instance($app, 'class', 'App::GitHooks') | 
 
| 110 | 0 | 0 | if scalar keys %args != 0 | 
 
| 152 | 0 | 0 | unless (defined $file) | 
 
| 241 | 0 | 0 | if (-l $repository->work_tree . '/' . $file) | 
 
| 253 | 0 | 0 | if (defined $skip_directories and $file =~ /$skip_directories/) | 
 
| 265 | 0 | 0 | if ($git_action ne 'D') | 
 
| 268 | 0 | 0 | if (not defined $extension or $extension eq '') | 
 
| 270 | 0 | 0 | unless open my $fh, '<', $file | 
 
| 274 | 0 | 0 | if defined $first_line and $first_line =~ /^#!.*perl/ | 
 
| 286 | 0 | 0 | unless $match_file =~ /$pattern/ | 
 
| 293 | 0 | 0 | if scalar @$tests == 0 | 
 
| 305 | 0 | 0 | if ($git_action eq 'D' and scalar grep({$$_{'return_value'} != $App::GitHooks::StagedChanges::PLUGIN_RETURN_SKIPPED;} @$ordered_output) == 0) { } | 
 
| 331 | 0 | 0 | if $return_value == $App::GitHooks::StagedChanges::PLUGIN_RETURN_PASSED or $return_value == $App::GitHooks::StagedChanges::PLUGIN_RETURN_SKIPPED | 
 
| 334 | 0 | 0 | if ($return_value == $App::GitHooks::StagedChanges::PLUGIN_RETURN_WARNED) { } | 
 
|  | 0 | 0 | elsif ($return_value == $App::GitHooks::StagedChanges::PLUGIN_RETURN_FAILED) { } | 
 
| 400 | 0 | 0 | unless defined $data_structure_reference | 
 
| 493 | 0 | 0 | if ($return_value == $App::GitHooks::StagedChanges::PLUGIN_RETURN_FAILED) { } | 
 
|  | 0 | 0 | elsif ($return_value == $App::GitHooks::StagedChanges::PLUGIN_RETURN_PASSED) { } | 
 
|  | 0 | 0 | elsif ($return_value == $App::GitHooks::StagedChanges::PLUGIN_RETURN_SKIPPED) { } | 
 
|  | 0 | 0 | elsif ($return_value == $App::GitHooks::StagedChanges::PLUGIN_RETURN_WARNED) { } | 
 
| 500 | 0 | 0 | unless $return_value =~ /\n\Z/ | 
 
| 561 | 0 | 0 | -e $repository->work_tree . '/.git/MERGE_MSG' ? : | 
 
| 565 | 0 | 0 | if ($$self{'is_merge'}) | 
 
| 568 | 0 | 0 | if $merge_message =~ /^Revert\s/ | 
 
| 589 | 0 | 0 | unless defined $$self{'is_revert'} | 
 
| 609 | 0 | 0 | unless defined $$self{'is_merge'} |