This accessor will retrieve value(s) of the given configuration variable.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Petr Baudis 2006-07-03 22:47:55 +02:00 коммит произвёл Junio C Hamano
Родитель 6fcca938b0
Коммит dc2613de86
3 изменённых файлов: 39 добавлений и 3 удалений

Просмотреть файл

@ -54,7 +54,8 @@ OPTIONS
--get::
Get the value for a given key (optionally filtered by a regex
matching the value).
matching the value). Returns error code 1 if the key was not
found and error code 2 if multiple key values were found.
--get-all::
Like get, but does not fail if the number of values for the key

Просмотреть файл

@ -473,7 +473,6 @@ and the directory must exist.
sub wc_chdir {
my ($self, $subdir) = @_;
$self->wc_path()
or throw Error::Simple("bare repository");
@ -486,6 +485,42 @@ sub wc_chdir {
}
=item config ( VARIABLE )
Retrieve the configuration C<VARIABLE> in the same manner as C<repo-config>
does. In scalar context requires the variable to be set only one time
(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('repo-config') so it is not so fast.
=cut
sub config {
my ($self, $var) = @_;
$self->repo_path()
or throw Error::Simple("not a repository");
try {
if (wantarray) {
return $self->command('repo-config', '--get-all', $var);
} else {
return $self->command_oneline('repo-config', '--get', $var);
}
} catch Git::Error::Command with {
my $E = shift;
if ($E->value() == 1) {
# Key not found.
return undef;
} else {
throw $E;
}
};
}
=item hash_object ( TYPE, FILENAME )
=item hash_object ( TYPE, FILEHANDLE )

Просмотреть файл

@ -118,7 +118,7 @@ static int get_value(const char* key_, const char* regex_)
if (do_all)
ret = !seen;
else
ret = (seen == 1) ? 0 : 1;
ret = (seen == 1) ? 0 : seen > 1 ? 2 : 1;
free_strings:
if (repo_config)