Re: [GIT PATCH] USB patches for 2.6.17

Linus Torvalds
2006-06-22T01:23:05Z

On Wed, 21 Jun 2006, Greg KH wrote:
>
> Ok, but how? I'm generating the diffstat in my script with:
>
> git diff origin..HEAD | diffstat -p1 >> $TMP_FILE

Btw, with a recent git (ie 1.4.0+), you can just do

git diff -M --stat origin..HEAD

to do that much more efficiently, and without any external dependency on
the "diffstat" program (with rename detection, you really need to do this
using git itself, because "diffstat" doesn't understand rename patches
being renames).

In fact, in a script, add the "--summary" option too, which gives a
summary of file creation/deletion/renames at the end.

And as usual, the diff options work fine with "git log" too, so you can do

git log -M --stat --summary

and it will do the right thing. Look at your ae0dadcf.. commit, for
example.

Btw, the _one_ thing to be careful about is that when you generate a real
patch with "-M", if that patch actually has a rename, then only "git
apply" will be able to apply it correctly, and if somebody uses a regular
"patch" program to apply it, they'll miss out on the rename, of course.

Some day maybe the git "extended patch format" is so univerally recognized
to be superior that everybody understands them, in the meantime you may
not want to use "-M" to generate patches unless you know the other end
applies them with git.

(Which also explains why "-M" is not the default, of course).

Linus