From: Jakub Narebski <jnareb@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Joe Ratterman <jratt0@gmail.com>, git@vger.kernel.org
Subject: Re: [PATCH] Gitweb: Avoid warnings when a repo does not have a valid HEAD
Date: Fri, 16 Dec 2011 15:55:36 +0100 [thread overview]
Message-ID: <201112161555.37472.jnareb@gmail.com> (raw)
In-Reply-To: <7vty51lbb0.fsf@alter.siamese.dyndns.org>
On Thu, 15 Dec 2011, Junio C Hamano wrote:
> Junio C Hamano <gitster@pobox.com> writes:
>> Joe Ratterman <jratt0@gmail.com> writes:
>>
>>> 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.
>>>
>> ..., 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"})
my $curr = ((defined $head && defined $ref{"id"})
is enough, because '!exists $hash{key}' implies '!defined $hash{key}'
(though reverse is not true).
>> ? ($ref{"id"} eq $head)
>> : 0);
>
> Just in case, I was not suggesting to update the patch to look like the
> above by "if we want to be extremely pedantic".
>
> After all, that error message in the log may be a good thing that notifies
> the site administrators about a suspicious repository so that it can be
> fixed (even though it was not a designed "feature" but something that
> happens to work).
Well, but for that those error messages should describe error; the above
is quite hard to translate to
warning: HEAD points to an unborn branch in repository foo.git
BTW. we should probably warn about this situation more clear, perhaps
by showing warning instead of empty place where subject of current commit
is usually shown.
Anyway git marks up branches (sic!) that _point to_ the same commit as
HEAD because we calculate it anyway, at least for 'summary' view.
Better solution would be to examine HEAD (either using Perl, or using
"git symbolic-ref") to get _name_ of current branch. I'd rather avoid
yet another command call.
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2011-12-16 14:56 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-15 20:58 [PATCH] Gitweb: Avoid warnings when a repo does not have a valid HEAD Joe Ratterman
2011-12-15 22:02 ` Junio C Hamano
2011-12-15 22:28 ` Junio C Hamano
2011-12-16 14:55 ` Jakub Narebski [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-12-13 22:35 Joe Ratterman
2011-12-14 8:53 ` Jonathan Nieder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201112161555.37472.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jratt0@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).