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

[RFC/PATCH] attr: map builtin userdiff drivers to well-known extensions

From
Jeff King <peff@peff.net>
Date
Aug 25, 2011, 20:40 UTC
Message-ID
<20110825204047.GA9948@sigill.intra.peff.net>
In-Reply-To
<20110825200001.GA6165@sigill.intra.peff.net>

We already provide sane hunk-header patterns for specific languages. However, the user has to manually map common extensions to use them. It's not that hard to do, but it's an extra step that the user might not even know is an option. Let's be nice and do it automatically.

Signed-off-by: Jeff King <peff@peff.net>
---
I tried to think of negative side effects.

The userdiff drivers we have are pretty conservative; they just specify hunk headers. So if you have a binary file named "foo.c", we still do the regular binary detection.

If you have any matching attribute line in your own files, it should override. So:

  foo/* -diff
will still mark foo/bar.c as binary, even with this change.
Can anyone think of other possible side effects?

Also, any other extensions that would go into such a list? I have no idea what the common extension is for something like pascal or csharp.

 attr.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/attr.c b/attr.c
index da29c8e..5118a14 100644
--- a/attr.c
+++ b/attr.c
@@ -294,6 +294,18 @@ static void free_attr_elem(struct attr_stack *e)
 
 static const char *builtin_attr[] = {
 	"[attr]binary -diff -text",
+	"*.html diff=html",
+	"*.java diff=java",
+	"*.perl diff=perl",
+	"*.pl diff=perl",
+	"*.php diff=php",
+	"*.py diff=python",
+	"*.rb diff=ruby",
+	"*.bib diff=bibtex",
+	"*.tex diff=tex",
+	"*.c diff=cpp",
+	"*.cc diff=cpp",
+	"*.cxx diff=cpp",
 	NULL,
 };
 
-- 
1.7.6.10.g62f04
Previous: Jeff KingNext: Eric Sunshine
Message 3 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.