+sub git_get_config ($) {
+ my ($c) = @_;
+
+ our %git_get_config_memo;
+ if (exists $git_get_config_memo{$c}) {
+ return $git_get_config_memo{$c};
+ }
+
+ my $v;
+ my @cmd = (@git, qw(config --), $c);
+ {
+ local ($debuglevel) = $debuglevel-2;
+ $v = cmdoutput_errok @cmd;
+ };
+ if ($?==0) {
+ } elsif ($?==256) {
+ $v = undef;
+ } else {
+ failedcmd @cmd;
+ }
+ $git_get_config_memo{$c} = $v;
+ return $v;
+}
+