6

I've been working on a file in my git repository. If I have a copy of the original git version of the file, I can run diff --show-c-function to get a comparison of the 2, files, where (in theory) it shows the whole of any function which has been changed. This is really useful for working out what I did specifically to a file, in working out the comment I'd need.

However in git-diff, this option is missing. Is there some way to make this work (or am I stuck having to get 2 copies of the file before I can commit, where the git-diff response is slightly complicated)?

Simon Bazley
  • 83
  • 1
  • 5

2 Answers2

14

git help diff shows this option:

-W, --function-context
        Show whole surrounding functions of changes.

So, it looks like git diff -W should do what you want.

twalberg
  • 59,951
  • 11
  • 89
  • 84
1

Note that GNU diff's --show-c-function option doesn't show you the text of the C function the change (hunk) is in, it just shows you the function name in the hunk heading (after the @@ .. @@ text).

git does the same thing in its diffs by default (at least as of 1.9), and it also makes it configurable via the core.attributesfile file.

Josip Rodin
  • 725
  • 6
  • 13