} elsif ($name eq 'default') {
undef @remotes;
for (sort keys %$remote) {
- my $do_fetch = $git->config_boolean("remote." . $_ .
+ my $do_fetch = $git->config_bool("remote." . $_ .
".skipDefaultUpdate");
- if (!defined($do_fetch) || $do_fetch ne "true") {
+ unless ($do_fetch) {
push @remotes, $_;
}
}
$term = new FakeTerm "$@: going non-interactive";
}
-my $def_chain = $repo->config_boolean('sendemail.chainreplyto');
-if ($def_chain and $def_chain eq 'false') {
+my $def_chain = $repo->config_bool('sendemail.chainreplyto');
+if (defined $def_chain and not $def_chain) {
$chain_reply_to = 0;
}
}
-=item config_boolean ( VARIABLE )
+=item config_bool ( VARIABLE )
-Retrieve the boolean configuration C<VARIABLE>.
+Retrieve the bool configuration C<VARIABLE>. The return value
+is usable as a boolean in perl (and C<undef> if it's not defined,
+of course).
Must be called on a repository instance.
=cut
-sub config_boolean {
+sub config_bool {
my ($self, $var) = @_;
$self->repo_path()
or throw Error::Simple("not a repository");
try {
- return $self->command_oneline('config', '--bool', '--get',
+ my $val = $self->command_oneline('config', '--bool', '--get',
$var);
+ return undef unless defined $val;
+ return $val eq 'true';
} catch Git::Error::Command with {
my $E = shift;
if ($E->value() == 1) {