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

Re: git diff annoyance / feature request

From
Jeff King <peff@peff.net>
Date
Aug 25, 2011, 20:00 UTC
Message-ID
<20110825200001.GA6165@sigill.intra.peff.net>
In-Reply-To
<4E569F10.8060808@panasas.com>
On Thu, Aug 25, 2011 at 12:14:24PM -0700, Boaz Harrosh wrote:
Show 7 quoted lines
> git diff has this very annoying miss-fixture where it will state
> as hunk header the closest label instead of the function name.
> [...]
>
> I bet all this was just inherited from diff. Would it be accepted if
> I send a patch to fix it? What you guys think a goto label makes any
> sense at all?

Unless you tell git what type of content is in your file, it uses the same basic heuristics for finding a hunk-header line that diff does. Namely, the most recent line that starts with an alphabetic character, underscore, or dollar sign.

If you want language-specific hunk headers, you can use gitattributes to tell git what's in your files. We already have a builtin C driver that will do what you want. You just need to do[1]:

  echo '*.c diff=cpp' >.gitattributes

Note that it handles both C and C++, hence the name. See "git help gitattributes" for details (the section "Defining a custom hunk-header" is what you want).

If your upstream (which looks like linux-2.6) doesn't want .gitattributes files in the repository, you can also put the entry into .git/info/attributes.

-Peff

[1] Since we have builtin funcname patterns for many types, we arguably could also have a builtin mapping of common extensions to diff drivers.

Previous: Boaz HarroshNext: Jeff King
Message 2 of 23 in “git diff annoyance / feature request”
  1. Boaz HarroshAug 25, 2011
  2. Jeff KingAug 25, 2011
  3. attr: map builtin userdiff drivers to well-known extensionsJeff King, Aug 25, 2011
  4. Eric SunshineAug 25, 2011
  5. Jeff KingAug 25, 2011
  6. Boaz HarroshAug 25, 2011
  7. Eric SunshineAug 25, 2011
  8. Jeff KingAug 26, 2011
  9. Brandon CaseyAug 25, 2011
  10. Jeff KingAug 26, 2011
  11. Eric SunshineAug 26, 2011
  12. Brandon CaseyAug 26, 2011
  13. Junio C HamanoAug 25, 2011
  14. Jeff KingAug 26, 2011
  15. Junio C HamanoAug 26, 2011
  16. Thomas RastAug 26, 2011
  17. Alexey ShumkinAug 27, 2011
  18. Junio C HamanoAug 25, 2011
  19. Boaz HarroshAug 25, 2011
  20. Miles BaderAug 26, 2011
  21. René ScharfeAug 26, 2011
  22. Boaz HarroshAug 26, 2011
  23. Junio C HamanoAug 26, 2011

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.