Git.pm: Don't require a repository instance for config

git config itself doesn't require to be called in a repository,
so don't add arbitrary restrictions.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Frank Lichtenheld 2008-03-14 18:29:28 +01:00 committed by Junio C Hamano
parent 2fba8366ed
commit c2e357c2fe

View file

@ -487,22 +487,20 @@ sub wc_chdir {
(exception is thrown otherwise), in array context returns allows the
variable to be set multiple times and returns all the values.
Must be called on a repository instance.
This currently wraps command('config') so it is not so fast.
=cut
sub config {
my ($self, $var) = @_;
$self->repo_path()
or throw Error::Simple("not a repository");
my ($self, $var) = _maybe_self(@_);
try {
my @cmd = ('config');
unshift @cmd, $self if $self;
if (wantarray) {
return $self->command('config', '--get-all', $var);
return command(@cmd, '--get-all', $var);
} else {
return $self->command_oneline('config', '--get', $var);
return command_oneline(@cmd, '--get', $var);
}
} catch Git::Error::Command with {
my $E = shift;
@ -522,20 +520,17 @@ sub config {
is usable as a boolean in perl (and C<undef> if it's not defined,
of course).
Must be called on a repository instance.
This currently wraps command('config') so it is not so fast.
=cut
sub config_bool {
my ($self, $var) = @_;
$self->repo_path()
or throw Error::Simple("not a repository");
my ($self, $var) = _maybe_self(@_);
try {
my $val = $self->command_oneline('config', '--bool', '--get',
$var);
my @cmd = ('config', '--bool', '--get', $var);
unshift @cmd, $self if $self;
my $val = command_oneline(@cmd);
return undef unless defined $val;
return $val eq 'true';
} catch Git::Error::Command with {
@ -557,19 +552,17 @@ sub config_bool {
by 1024, 1048576 (1024^2), or 1073741824 (1024^3) prior to output.
It would return C<undef> if configuration variable is not defined,
Must be called on a repository instance.
This currently wraps command('config') so it is not so fast.
=cut
sub config_int {
my ($self, $var) = @_;
$self->repo_path()
or throw Error::Simple("not a repository");
my ($self, $var) = _maybe_self(@_);
try {
return $self->command_oneline('config', '--int', '--get', $var);
my @cmd = ('config', '--int', '--get', $var);
unshift @cmd, $self if $self;
return command_oneline(@cmd);
} catch Git::Error::Command with {
my $E = shift;
if ($E->value() == 1) {