Subject: Re: [RFC/PATCH] Changed gitweb.remote_heads config key name to gitweb.remoteHeads.

From: Jakub Narebski <[email-masked]>
Date: Thu, 7 Jul 2011 20:56:24 +0200

On Thu, 7 Jul 2011, Marc Branchaud wrote:

> Git doesn't accept config key names with underscore characters.

Hmmm... that is strange.  Git accepts '-' (though it is discouraged)
but not '_' in config key names.

> Signed-off-by: Marc Branchaud <[email-masked]>

Acked-by: Jakub Narebski <[email-masked]>

With the caveat that included patch must be applied first,
see below.

> ---
> 
> Came across this today.  The patch is RFC because I have not verified 
> if it's complete or if gitweb even respects the setting.
> 
>  gitweb/gitweb.perl |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 81dacf2..edbb080 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -524,9 +524,9 @@ our %feature = (
>  	# $feature{'remote_heads'}{'default'} = [1];
>  	# To have project specific config enable override in $GITWEB_CONFIG
>  	# $feature{'remote_heads'}{'override'} = 1;
> -	# and in project config gitweb.remote_heads = 0|1;
> +	# and in project config gitweb.remoteHeads = 0|1;

Key names are case insensitive...

>  	'remote_heads' => {
> -		'sub' => sub { feature_bool('remote_heads', @_) },
> +		'sub' => sub { feature_bool('remoteHeads', @_) },

...but git_get_project_config didn't respect that.  With above, and
without included patch, gitweb would get from "git config --list -z"
'gitweb.remoteheads' (turned lowercase), but as it is written here
it would check if 'gitweb.remoreHeads' key exists... so it would
never match.

-- >8 --
From: Jakub Narebski <[email-masked]>
Date: Thu, 7 Jul 2011 20:48:50 +0200
Subject: [PATCH] gitweb: Make git config search case insensitive

Gitweb does not (yet?) use git config variables with subsection, so we
can simply lowercase $key in git_get_project_config: section name and
key name are case insensitive (only subsection name is case
sensitive).

Signed-off-by: Jakub Narebski <[email-masked]>
---
 gitweb/gitweb.perl |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 589c85b..59147b6 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -2526,6 +2526,7 @@ sub git_get_project_config {
 
 	# key sanity check
 	return unless ($key);
+	$key = lc($key); # assuming there is no subsection
 	$key =~ s/^gitweb\.//;
 	return if ($key =~ m/\W/);
 
-- 
1.7.5