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

Re: speeding up cg-log -u

From
Junio C Hamano <junkio@cox.net>
Date
May 14, 2005, 11:17 UTC
Message-ID
<7vk6m212g7.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<20050514103937.GA3905@pasky.ji.cz>
>>>>> "PB" == Petr Baudis <pasky@ucw.cz> writes:

PB> Dear diary, on Sat, May 14, 2005 at 11:50:24AM CEST, I got a letter PB> where Junio C Hamano <junkio@cox.net> told me that...

>> +	buffer = read_sha1_file(item->object.sha1, type, &size);

PB> If it do that, I wonder how much speedup would be using this instead. PB> But probably still significant one.

I would imagine so (only benchmark would tell), because you would not spawn git-cat-file for each individual commit object.

Whenever I work with those "struct object" derivatives, I get very frustrated by the fact that they are designed to cater only to the need of very narrow immediate users. The first round of tree objects did not even have names for each entry because the only thing it cared about was connectivity checking, and for that purpose callers would not care about what each blob or subtree was referred as. Now when I want to use commit objects I find that it only records the commit date (other than connectivity information). It really appears that connectivity is the primary thing and everything else is bolted on top.

Not wanting to keep the whole object because of their size is understandable since the users of "struct object" derivatives rarely if ever seem to free them once they get hold of them. And not wanting to think ahead about what is worth keeping (like names for tree entries back then, or commit author names) is also understandable, but it still is frustrating. Not that I would want to solve this myself ...

Previous: Petr BaudisNext: Zack Brown
Message 6 of 14 in “speeding up cg-log -u”
  1. Zack BrownMay 14, 2005
  2. Junio C HamanoMay 14, 2005
  3. Add --author match to git-rev-list and git-rev-tree.Junio C Hamano, May 14, 2005
  4. Petr BaudisMay 14, 2005
  5. Petr BaudisMay 14, 2005
  6. Junio C HamanoMay 14, 2005
  7. Zack BrownMay 14, 2005
  8. Petr BaudisMay 14, 2005
  9. Daniel BarkalowMay 15, 2005
  10. Junio C HamanoMay 16, 2005
  11. Daniel BarkalowMay 16, 2005
  12. Zack BrownMay 14, 2005
  13. Petr BaudisMay 14, 2005
  14. Zack BrownMay 14, 2005

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.