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

Re: [PATCHv2 1/3] gitweb: Deal with HEAD pointing to unborn branch in "heads" view

From
Jakub Narebski <jnareb@gmail.com>
Date
Feb 17, 2012, 13:41 UTC
Message-ID
<201202171441.35618.jnareb@gmail.com>
In-Reply-To
<7vsjiawe74.fsf@alter.siamese.dyndns.org>
On Fri, 17 Feb 2012, Junio C Hamano wrote:
 
> But after trying to write a reroll myself, I have to wonder what would
> happen if you have two branches pointing at the same commit as the one at
> HEAD.  Why isn't the use of current_head class controlled by comparison
> between the name of the ref and the output from "symbolic-ref HEAD"?

If there is more than one branch that points to HEAD commit, they all will be highlighted.

Using "git symbolic-ref HEAD", or just reading '.git/HEAD' file or symlink is on my todo list. This will make gitweb highlight current branch correctly even if there is more than one branch that point to the same HEAD commit, and make it possible to support "detached HEAD" (which I think is not supported at all now).

Anyway the test is here to stay... :-)
 
Show 26 quoted lines
> -- >8 --
> From: Jakub Narebski <jnareb@gmail.com>
> Date: Wed, 15 Feb 2012 16:36:41 +0100
> Subject: [PATCH] gitweb: Fix "heads" view when there is no current branch
> 
> In a repository whose HEAD points to an unborn branch with no commits,
> "heads" view and "summary" view (which shows what is shown in "heads"
> view) compared the object names of commits at the tip of branches with the
> output from "git rev-parse HEAD", which caused comparison of a string with
> undef and resulted in a warning in the server log.
> 
> This can happen if non-bare repository (with default 'master' branch)
> is updated not via committing but by other means like push to it, or
> Gerrit.  It can happen also just after running "git checkout --orphan
> <new branch>" but before creating any new commit on this branch.
> 
> Rewrite the comparison so that it also works when $head points at nothing;
> in such a case, no branch can be "the current branch", add a test for it.
> 
> While at it rename local variable $head to $head_at, as it points to
> current commit rather than current branch name (HEAD contents).
> 
> Reported-by: Rajesh Boyapati
> Signed-off-by: Jakub Narebski <jnareb@gmail.com>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
Thanks!
-- 
Jakub Narebski
Poland
Previous: Junio C HamanoNext: Junio C Hamano
Message 6 of 9 in “[PATCHv2 0/3] gitweb: Dealing with being on unborn branch”
  1. Jakub NarebskiFeb 15, 2012
  2. 1/3 gitweb: Deal with HEAD pointing to unborn branch in "heads" viewJakub Narebski, Feb 15, 2012
  3. Junio C HamanoFeb 16, 2012
  4. Jakub NarebskiFeb 16, 2012
  5. Junio C HamanoFeb 16, 2012
  6. Jakub NarebskiFeb 17, 2012
  7. Junio C HamanoFeb 17, 2012
  8. 2/3 gitweb: Harden parse_commit and parse_commitsJakub Narebski, Feb 15, 2012
  9. 3/3 gitweb: Silence stderr in parse_commit*() subroutinesJakub Narebski, Feb 15, 2012

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.