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

Re: [PATCH 8/8] gitweb: Remove --parents from call to git-rev-list in parse_rev_list

From
Jakub Narebski <jnareb@gmail.com>
Date
Sep 6, 2006, 21:18 UTC
Message-ID
<edndud$csb$1@sea.gmane.org>
In-Reply-To
<Pine.LNX.4.64.0609061404490.27779@g5.osdl.org>
Linus Torvalds wrote:
Show 7 quoted lines
> On Wed, 6 Sep 2006, Jakub Narebski wrote:
>>
>> Benchmarks (7 means patch before, 8 means this patch):
> 
> Btw, you should possibly look at cold-cache numbers, and numbers for 
> projects that aren't fully packed. They can often be _dramatically_ 
> different.
By the way I forgot that the case 8 is for the repository with 1 commit
more, although that shouldn't matter much for paginated output. Still, it
is one commit more unpacked. Benchmark for 7 was also for partially packed
repository.
 
Show 6 quoted lines
> That said, the dramatic change would probably be if there were some way to 
> avoid using "--full-history" (rather than "--parents", which doesn't add 
> _that_ much overhead), since that "follow all parents" behaviour of 
> full-history is usually what really makes a big deal.
> 
> But I guess for gitweb, you do want to use --full-history in this case ;(

It is now easy with patch 3/7 "Use @hist_opts as git-rev-list parameters in git_history" to remove '--full-history' from git-rev-list parameters in git_history subroutine. Or add '--remove-empty' which matters only for the last page of file/directory history output.

I had some simple benchmark that shown that the earlier version with filtering via piping git-rev-list to git-diff-tree --stdin -- <filename> was slightly faster than git-rev-list --full-history -- <filename> (current version). If I remember correctly of course. And this version can be easily extended to include renames (but not file to directory changes).

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Previous: Linus TorvaldsNext: Junio C Hamano
Message 11 of 28 in “gitweb: Trying to improve history view speed”
  1. 0/7 gitweb: Trying to improve history view speedJakub Narebski, Sep 6, 2006
  2. 1/7 gitweb: Make pickaxe search a featureJakub Narebski, Sep 6, 2006
  3. 2/7 gitweb: Paginate history outputJakub Narebski, Sep 6, 2006
  4. 3/7 gitweb: Use @hist_opts as git-rev-list parameters in git_historyJakub Narebski, Sep 6, 2006
  5. 4/7 gitweb: Add parse_rev_list for later useJakub Narebski, Sep 6, 2006
  6. 5/7 gitweb: Use parse_rev_list in git_shortlog and git_historyJakub Narebski, Sep 6, 2006
  7. 6/7 gitweb: Assume parsed revision list in git_shortlog_body and git_history_bodyJakub Narebski, Sep 6, 2006
  8. 7/7 gitweb: Set page to 0 if it is not defined, in git_historyJakub Narebski, Sep 6, 2006
  9. 8/8 gitweb: Remove --parents from call to git-rev-list in parse_rev_listJakub Narebski, Sep 6, 2006
  10. Linus TorvaldsSep 6, 2006
  11. Jakub NarebskiSep 6, 2006
  12. Junio C HamanoSep 6, 2006
  13. Jakub NarebskiSep 6, 2006
  14. Jakub NarebskiSep 7, 2006
  15. Junio C HamanoSep 7, 2006
  16. Jakub NarebskiSep 7, 2006
  17. Junio C HamanoSep 7, 2006
  18. Jakub NarebskiSep 7, 2006
  19. Linus TorvaldsSep 6, 2006
  20. Jakub NarebskiSep 6, 2006
  21. Linus TorvaldsSep 6, 2006
  22. Jakub NarebskiSep 6, 2006
  23. Linus TorvaldsSep 6, 2006
  24. Junio C HamanoSep 6, 2006
  25. Jakub NarebskiSep 9, 2006
  26. Junio C HamanoSep 9, 2006
  27. Jakub NarebskiSep 9, 2006
  28. Junio C HamanoSep 9, 2006

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.