[posted originally to git-users@ but advised this would be a better forum] diff.{type}.xfuncname seems to start searching backwards in from the beginning of the hunk, not the first differing line. To reproduce: $ mkdir tmp $ cd tmp $ git init $ cat > foo.c <<EOF int call_me(int maybe) { } int main() { } EOF $ git add foo.c $ git commit -m "Initial checkin" $ ed foo.c # main() should return 0 $i return 0; . wq $ git diff The diff returns a header line of @@ -4,4 +4,5 @@ int call_me(int maybe) int main() { + return 0; } misleadingly suggesting that the change occurred in the call_me() function, rather than in main() I'm running 1.7.2.5 from Debian Stable if that makes a difference. Is this expected/proper behavior? -tkc FWIW, I stumbled across this tinkering with diff.{typename}.xfuncname detailed in gitattributes(5) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html