Code

gitweb: Make config_to_multi return [] instead of [undef]
authorPetr Baudis <pasky@suse.cz>
Sat, 8 Dec 2007 11:30:59 +0000 (12:30 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sun, 16 Dec 2007 19:56:27 +0000 (11:56 -0800)
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@suse.cz>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gitweb/gitweb.perl
t/t9500-gitweb-standalone-no-errors.sh

index 2a0c46c234a1a5b4d07c8ad522d9e122415407a6..28bb8c3933374f1dbe4e56da322a9f1643074dcf 100755 (executable)
@@ -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 {
index 35fff3ddbad562d264b4a65f43021a5f7f912e70..796cd7dba0cdc64e6b9e68e81663e9a70327d8e5 100755 (executable)
@@ -557,6 +557,31 @@ test_expect_success \
        'gitweb_run "p=.git;a=tree;opt=--no-merges"'
 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