Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Also use comma as a word separator in diff

Tags:

git

diff

How can I add , as a word separator for git diff --word-diff?

For instance I would like the diff to recognize that

function(A,B,C) -> function(A, B, C)

only has added the spaces instead of replacing the whole line.

like image 706
Sedrik Avatar asked May 07 '12 13:05

Sedrik


3 Answers

Use --word-diff-regex:

   --word-diff-regex=<regex>
       Use <regex> to decide what a word is, instead of considering runs
       of non-whitespace to be a word. Also implies --word-diff unless it
       was already enabled.

       Every non-overlapping match of the <regex> is considered a word.
       Anything between these matches is considered whitespace and
       ignored(!) for the purposes of finding differences. You may want to
       append |[^[:space:]] to your regular expression to make sure that
       it matches all non-whitespace characters. A match that contains a
       newline is silently truncated(!) at the newline.

       The regex can also be set via a diff driver or configuration
       option, see gitattributes(1) or git-config(1). Giving it explicitly
       overrides any diff driver or configuration setting. Diff drivers
       override configuration settings.

I never used it but i guess that git diff --word-diff-regex="[^[:space:],]+" may work.

like image 117
KurzedMetal Avatar answered Oct 02 '22 11:10

KurzedMetal


In addition to KurzedMetal's answer: without the quotes it works even better since it doesn't break my bashs autocompletion when hitting TAB.

git diff --word-diff-regex=[^[:space:],]+

like image 39
Kitze Avatar answered Oct 02 '22 09:10

Kitze


You can also try -w/--ignore-all-space, although that may ignore more whitespace than you like.

like image 45
chepner Avatar answered Oct 02 '22 11:10

chepner