threads / discuss / 58329

git diff --functional-changes ?

Subject: git diff --functional-changes ?

## tl;dr

2 messages between Aug 19, 2022 and Aug 22, 2022.

replies: 1people: 2as markdown or json

Christian Heller· Aug 19, 2022, 16:10 UTC · lore
Feature request

I recently ran GNU indent on a larger C project which made all diffs horribly noisy. Is there an option for git diff to ignore changes due to the placement of curly braces '{', '}' ? Equally helpful would be an option to ignore changes to comments.

Something like:
- delete all comments
- re-normalize line-breaks and indentation
- show only 'functional' changes

Regards, Chris

Johannes Schindelin· Aug 22, 2022, 15:53 UTC · re: Christian Heller · lore

Re: git diff --functional-changes ?

Hi Christian,
On Fri, 19 Aug 2022, Christian Heller wrote:
Show 12 quoted lines
> Feature request
>
> I recently ran GNU indent on a larger C project which made all diffs
> horribly noisy.
> Is there an option for git diff to ignore changes due to the placement
> of curly braces '{', '}' ?
> Equally helpful would be an option to ignore changes to comments.
>
> Something like:
> - delete all comments
> - re-normalize line-breaks and indentation
> - show only 'functional' changes

This would be very language-specific, and if you find a utility that can do that, you will want to use it in Git via the external diff extension mechanism: https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---ext-diff

As far as pure Git goes, I have had luck using the [--ignore-space-change][space-change] and the [--word-diff][word-diff] options.

To be honest, I use a custom word diff quite often: `--word-diff=[A-Za-z0-9_]+|.`. This marks stretches of alpha-numeric-plus-underscore characters as words, and treats all other characters as single-character words, too (which means that it also colors parentheses and such).

Maybe these help you, even if they do not solve precisely for what you asked.

Ciao, Johannes

[space-change]: https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---ignore-space-change [word-diff]: https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---word-diffltmodegt

← back to recent threads