Re: [PATCH] Gitweb: Avoid warnings when a repo does not have a valid HEAD
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 15, 2011, 22:02 UTC
- Message-ID
- <7v62hhmr2s.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1323982737-19065-1-git-send-email-jratt0@gmail.com>
Joe Ratterman <jratt0@gmail.com> writes:
Show 21 quoted lines
> It is possible that the HEAD reference does not point to an existing
> branch. When viewing such a repository in gitweb, a message like this
> one was sent to the error log:
>
> gitweb.cgi: Use of uninitialized value in string eq at /usr/src/git/gitweb/gitweb.cgi line 5115.
>
> Signed-off-by: Joe Ratterman <jratt0@gmail.com>
> ---
> gitweb/gitweb.perl | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 4f0c3bd..5af06d6 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -5440,7 +5440,7 @@ sub git_heads_body {
> for (my $i = $from; $i <= $to; $i++) {
> my $entry = $headlist->[$i];
> my %ref = %$entry;
> - my $curr = $ref{'id'} eq $head;
> + my $curr = $head ? ($ref{'id'} eq $head) : 0;Makes one wonder if $head could be '0', but I presume this is about the case where (!defined $head) holds true. Also makes one wonder if a similar issue exists on the $ref{"id"} side. I suspect that won't be true unless you have a very screwed-up repository, but in that case a repository with a HEAD that points at an unborn branch _and_ have other refs that do point at existing commit is already screwed-up, so if we want to be extremely pedantic then perhaps ...
my $curr = ((defined $head && exists $ref{"id"} && defined $ref{"id"})
? ($ref{"id"} eq $head)
: 0);