From: Petr Baudis <pasky@xxxxxxx> Date: Sat, 8 Dec 2007 12:30:59 +0100 Subject: [PATCH] gitweb: Make config_to_multi return [] instead of [undef] This is important for the list of clone urls, where if there are no per-repository clone URL configured, the default base URLs are never used for URL construction without this patch. Add tests for different ways of setting project URLs, just in case. Note that those tests in current form wouldn't detect breakage fixed by this patch, as it only checks for errors and not for expected output. Signed-off-by: Petr Baudis <pasky@xxxxxxx> Signed-off-by: Jakub Narebski <jnareb@xxxxxxxxx> --- Originally by Petr Baudis, changed to use defined($val). I have also added parentheses for better readibility. I have added tests _then_ I have realized that in current form they cannot detect regression corrected by this patch. So if you want, you can not apply changes to test (and remove paragraph about test from commit message). The fact that patch was not applied might be cause by the lack of Ack from pasky. gitweb/gitweb.perl | 2 +- t/t9500-gitweb-standalone-no-errors.sh | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletions(-) diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 24b3158..a746a85 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1511,7 +1511,7 @@ sub config_to_int { sub config_to_multi { my $val = shift; - return ref($val) ? $val : [ $val ]; + return ref($val) ? $val : (defined($val) ? [ $val ] : []); } sub git_get_project_config { diff --git a/t/t9500-gitweb-standalone-no-errors.sh b/t/t9500-gitweb-standalone-no-errors.sh index 35fff3d..2d3d4e8 100755 --- a/t/t9500-gitweb-standalone-no-errors.sh +++ b/t/t9500-gitweb-standalone-no-errors.sh @@ -558,6 +558,31 @@ test_expect_success \ test_debug 'cat gitweb.log' # ---------------------------------------------------------------------- +# testing config_to_multi / cloneurl + +test_expect_success \ + 'URL: no project URLs, no base URL' \ + 'gitweb_run "p=.git;a=summary"' +test_debug 'cat gitweb.log' + +test_expect_success \ + 'URL: project URLs via gitweb.url' \ + 'git config --add gitweb.url git://example.com/git/trash.git && + git config --add gitweb.url http://example.com/git/trash.git && + gitweb_run "p=.git;a=summary"' +test_debug 'cat gitweb.log' + +cat >.git/cloneurl <<\EOF +git://example.com/git/trash.git +http://example.com/git/trash.git +EOF + +test_expect_success \ + 'URL: project URLs via cloneurl file' \ + 'gitweb_run "p=.git;a=summary"' +test_debug 'cat gitweb.log' + +# ---------------------------------------------------------------------- # gitweb config and repo config cat >>gitweb_config.perl <<EOF -- 1.5.3.7 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html