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

A better git diff --word-diff (--word-diff-regex) ?

From
Piotr Krukowiecki <piotr.krukowiecki@gmail.com>
Date
Mar 19, 2012, 09:44 UTC
Message-ID
<CAA01CsrJ12LmNYe6ujnDsZecJcGc8mFaB=1GC8-RZzvMYbYuUw@mail.gmail.com>
Hi,

is there a way to configure --word-diff to be a more programming language friendly? For example if I add one parameter to a function declaration, I'd like to see only the addition of the parameter as the change. But currently it shows much more.

For example if
  void foo(int x);
is changed to
  void foo(int x, int y);
I'd like to see only ",int y" as the change, not "x, int y);".

I think I'd like to ignore all white spaces and tokenize text on word boundaries and see the diff between the tokens. This way if I e.g. add a missing ";" it'll be shown as the only change.

$ echo 'void foo(int x);' > foo.c && git add foo.c && git commit -m "foo"
[master (root-commit) 5af60cb2] foo
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 foo.c
$ echo 'void foo(int x, int y);' > foo.c && git diff --word-diff
diff --git a/foo.c b/foo.c
index 42a5d4e9..289eb233 100644
--- a/foo.c
+++ b/foo.c
@@ -1 +1 @@
void foo(int [-x);-]{+x, int y);+}


Thanks,
-- 
Piotr Krukowiecki
Next: Matthieu Moy
Message 1 of 7 in “A better git diff --word-diff (--word-diff-regex) ?”
  1. Piotr KrukowieckiMar 19, 2012
  2. Matthieu MoyMar 19, 2012
  3. Piotr KrukowieckiMar 19, 2012
  4. Thomas RastMar 19, 2012
  5. Piotr KrukowieckiMar 19, 2012
  6. Johannes SixtMar 19, 2012
  7. Jeff KingMar 19, 2012

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.