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

Re: What's cooking in git.git (Aug 2008, #04; Sun, 17)

From
Brian Downing <bdowning@lavos.net>
Date
Aug 18, 2008, 22:41 UTC
Message-ID
<20080818224105.GA31114@lavos.net>
In-Reply-To
<7vej4o6j40.fsf@gitster.siamese.dyndns.org>
On Sun, Aug 17, 2008 at 03:17:35AM -0700, Junio C Hamano wrote:
Show 11 quoted lines
> * bd/diff-strbuf (Wed Aug 13 23:18:22 2008 -0700) 3 commits
>  + xdiff-interface: hide the whole "xdiff_emit_state" business from
>    the caller
>  + Use strbuf for struct xdiff_emit_state's remainder
>  + Make xdi_diff_outf interface for running xdiff_outf diffs
> 
> Gives measurable performance improvement to textual diff generation.  For
> improving "blame" performance, it might be more effective to hook directly
> to lower level of xdiff machinery so that we do not even have to generate
> patch only to discard after reading "@@ -l,k +m,n @@" lines, but that
> would be a separate topic.

I have done this, resulting in my blame test case going from about 100s on master to about 50s, but I need to do some additional cleanup before it's ready to be submitted. I also have some more ideas for how to speed it up some more. (Basically, with the textual diff generation removed, most of the time now is spent in xdiff hashing lines. Since blame in copy-detection mode tends to diff against the same file over and over again, this is wasted work. Allowing the xdiff machinery to re-use a diff preparation looks to be a little involved, though...)

-bcd
Previous: Tor Arvid Lund
Message 3 of 3 in “What's cooking in git.git (Aug 2008, #04; Sun, 17)”
  1. Junio C HamanoAug 17, 2008
  2. Tor Arvid LundAug 17, 2008
  3. Brian DowningAug 18, 2008

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.