git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Puzzled by a t9500 test failure

From
Shawn O. Pearce <spearce@spearce.org>
Date
Oct 14, 2008, 00:08 UTC
Message-ID
<20081014000812.GZ4856@spearce.org>
In-Reply-To
<20081013234851.GY4856@spearce.org>
"Shawn O. Pearce" <spearce@spearce.org> wrote:
Show 15 quoted lines
> Junio C Hamano <gitster@pobox.com> wrote:
> > With recent tip of 'master':
> > 
> >     $ make
> >     $ mkdir t/trash
> >     $ cd t && sh t9500-*.sh -i
> > 
> > fails at the very first test.  Can anybody figure out why?
> 
> Hmmph.  Near as I can tell its because gitweb.log has this in it:
> 
> $ cat gitweb.log
> [Mon Oct 13 23:43:36 2008] gitweb.perl: Use of uninitialized value in scalar chomp at /home/sop/local/maint-git/t/../gitweb/gitweb.perl line 1811.
> [Mon Oct 13 23:43:36 2008] gitweb.perl: Use of uninitialized value in addition (+) at /home/sop/local/maint-git/t/../gitweb/gitweb.perl line 3772.
> HASH..

bisect says its aed93de428d7d12ee23d84d27265af1e37eb348f, "gitweb: Support for tag clouds".

This appears to fix it. As for how I missed this, I do not know. I usually tested topic branches pretty heavily before merging them to next, and I tested both master and next daily. So I thought the topic was ready to merge into master. Apparently it was not. How I missed the failed merge, I don't know. :-\

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 1116800..793166e 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -1808,7 +1808,7 @@ sub git_get_project_ctags {
 	foreach (<$git_dir/ctags/*>) {
 		open CT, $_ or next;
 		my $val = <CT>;
-		chomp $val;
+		chomp $val if defined $val;
 		close CT;
 		my $ctag = $_; $ctag =~ s#.*/##;
 		$ctags->{$ctag} = $val;
@@ -1822,7 +1822,11 @@ sub git_populate_project_tagcloud {
 	# First, merge different-cased tags; tags vote on casing
 	my %ctags_lc;
 	foreach (keys %$ctags) {
-		$ctags_lc{lc $_}->{count} += $ctags->{$_};
+		if (defined ($ctags_lc{lc $_}->{count})) {
+			$ctags_lc{lc $_}->{count} += $ctags->{$_};
+		} else {
+			$ctags_lc{lc $_}->{count} = $ctags->{$_};
+		}
 		if (not $ctags_lc{lc $_}->{topcount}
 		    or $ctags_lc{lc $_}->{topcount} < $ctags->{$_}) {
 			$ctags_lc{lc $_}->{topcount} = $ctags->{$_};
@@ -3769,7 +3773,11 @@ sub git_project_list_body {
 		my %ctags;
 		foreach my $p (@projects) {
 			foreach my $ct (keys %{$p->{'ctags'}}) {
-				$ctags{$ct} += $p->{'ctags'}->{$ct};
+				if (defined $ctags{$ct}) {
+					$ctags{$ct} += $p->{'ctags'}->{$ct};
+				} else {
+					$ctags{$ct} = $p->{'ctags'}->{$ct};
+				}
 			}
 		}
 		my $cloud = git_populate_project_tagcloud(\%ctags);
-- 
Shawn.
Previous: Shawn O. PearceNext: Junio C Hamano
Message 3 of 6 in “Puzzled by a t9500 test failure”
  1. Junio C HamanoOct 13, 2008
  2. Shawn O. PearceOct 13, 2008
  3. Shawn O. PearceOct 14, 2008
  4. Fix reading of cloud tagsJunio C Hamano, Oct 15, 2008
  5. Junio C HamanoOct 14, 2008
  6. Shawn O. PearceOct 14, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.