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

Re: [PATCHv3 1/2] Make xdi_diff_outf interface for running xdiff_outf diffs

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 21, 2008, 05:24 UTC
Message-ID
<7vzln7j5yx.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<20080821033756.GC31114@lavos.net>
bdowning@lavos.net (Brian Downing) writes:
Show 12 quoted lines
> On Wed, Aug 13, 2008 at 11:18:22PM -0700, Junio C Hamano wrote:
>> Much nicer.  xdi_diff() is just a performance thing that only kicks in
>> when you are running -U0 diff, so it is unsurprising that you did not see
>> any test failures.
>
> Interesting point here.  In playing with trying to cache the diff hashes
> to speed up blame, I had to basically disable the xdi_diff tail trimming
> when building the hash the first time, because it needed to see the
> whole file.  In doing this, I discovered that just changing from
> xdi_diff to xdl_diff /does/ change the blame -M -C -C --incremental
> result for my test case.  (Unfortunately, my test case is proprietary
> code...)

Is the reason why you mention "incremental" specifically because you only tested incremental, or you get identical result in non-incremental mode?

If your material is repetitive, say you have lines "A A A B C A A A" in the parent blob and "A A A B A A A" in the child blob, and you are trying to pass blame on three line block "A A A" at the beginning of the child, we can pass blame to the three lines at the beginning part, or to the end part, without Linus's common tail trimming optimization. But there is no way it can match the end part with the optimization.

You cannot say one result is more correct than the other --- both are equally correct. Of course, you could argue that with such a highly repetitive material, it may be better to match closer ones, but it's a judgement call.

Previous: Brian DowningNext: Brian Downing
Message 13 of 14 in “Make xdiff_outf_{init,release} interface”
  1. 1/2 Make xdiff_outf_{init,release} interfaceBrian Downing, Aug 13, 2008
  2. Junio C HamanoAug 14, 2008
  3. Brian DowningAug 14, 2008
  4. Junio C HamanoAug 14, 2008
  5. 1/2 Make xdi_diff_outf interface for running xdiff_outf diffsBrian Downing, Aug 14, 2008
  6. 2/2 Use strbuf for struct xdiff_emit_state's remainderBrian Downing, Aug 14, 2008
  7. Brian DowningAug 14, 2008
  8. 1/2 Make xdi_diff_outf interface for running xdiff_outf diffsBrian Downing, Aug 14, 2008
  9. 2/2 Use strbuf for struct xdiff_emit_state's remainderBrian Downing, Aug 14, 2008
  10. Junio C HamanoAug 14, 2008
  11. Brian DowningAug 14, 2008
  12. Brian DowningAug 21, 2008
  13. Junio C HamanoAug 21, 2008
  14. Brian DowningAug 21, 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.