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

Re: "git diff" surprising default output

From
Sergey Organov <sorganov@gmail.com>
Date
Mar 1, 2023, 20:28 UTC
Message-ID
<87sfeo2p38.fsf@osv.gnss.ru>
In-Reply-To
<xmqqzg8wmfa6.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 21 quoted lines
> Sergey Organov <sorganov@gmail.com> writes:
>
>> I figured the offender is --indent-heuristic that is described in the
>> manual as:
>>
>>       Enable the heuristic that shifts diff hunk boundaries to make
>>       patches easier to read. This is the default.
>>
>> but apparently rather makes patches harder to read, at least at some
>> conditions. Turning it off helps to get the expected result:
>
> As a heuristic, it is not surprising that it has some corner cases
> where it does not shine.  I think the version that was eventually
> merged starts here
>
>   https://lore.kernel.org/git/cover.1473068229.git.mhagger@alum.mit.edu/
>
> and we should be able to find a few links to the original
> observation that motivated the change, e.g.
>
>   https://public-inbox.org/git/cover.1470259583.git.mhagger@alum.mit.edu/
Thanks a lot for the references!

From what I briefly read there it apparently follows that it'd shine at regular C code, yet won't shine at preprocessor directives that are usually out of regular alignment.

It'd be nice to improve this, but I'm not sure it's a simple thing to fix, or even at all possible, though maybe it'd help to somehow favoring chunks that start and end at the same alignment?

Or maybe it's just plain bug in the implementation?

Thanks, -- Sergey Organov

Previous: Junio C Hamano
Message 3 of 3 in “"git diff" surprising default output”
  1. Sergey OrganovMar 1, 2023
  2. Junio C HamanoMar 1, 2023
  3. Sergey OrganovMar 1, 2023

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.