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

Re: [PATCH 2/4] Hash tags by commit SHA1 in git-describe.

From
Shawn O. Pearce <spearce@spearce.org>
Date
Jan 14, 2007, 23:19 UTC
Message-ID
<20070114231937.GF10888@spearce.org>
In-Reply-To
<7vr6txh278.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano <junkio@cox.net> wrote:
Show 14 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> > On Sat, 13 Jan 2007, Shawn O. Pearce wrote:
> >
> >> If a project has a very large number of tags then git-describe
> >> will spend a good part of its time looping over the tags testing
> >> them one at a time to determine if it matches a given commit.
> >
> > Why not just use object_refs? This also obviates the need for your patch 
> > 3/4, since you no longer have buckets to search binarily. Plus, it uses a 
> > hash map, which already turned out to beat (in terms of performance) the 
> > hell out of bucketed lists in git history.
> 
> Very good point.

OK. I didn't realize we had a better system already implemented. Thanks for pointing it out.

I'll work up a patch to replace the crude hash/list arrangement with something based on object_refs instead.

-- 
Shawn.
Previous: Junio C HamanoNext: Shawn O. Pearce
Message 4 of 8 in “Hash tags by commit SHA1 in git-describe.”
  1. 2/4 Hash tags by commit SHA1 in git-describe.Shawn O. Pearce, Jan 13, 2007
  2. Johannes SchindelinJan 14, 2007
  3. Junio C HamanoJan 14, 2007
  4. Shawn O. PearceJan 14, 2007
  5. 3/4 Use binary searching on large buckets in git-describe.Shawn O. Pearce, Jan 13, 2007
  6. Junio C HamanoJan 14, 2007
  7. Shawn O. PearceJan 14, 2007
  8. 4/4 Improve git-describe performance by reducing revision listing.Shawn O. Pearce, Jan 13, 2007

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.