Re: diffstat wierdness with 'git format-patch' output
- From
Fredrik Kuivinen <freku045@student.liu.se>
- Date
- Feb 14, 2006, 22:30 UTC
- Message-ID
- <20060214223005.GA12652@c165.ib.student.liu.se>
- In-Reply-To
- <20060214055425.GA32261@kroah.com>
On Mon, Feb 13, 2006 at 09:54:25PM -0800, Greg KH wrote:
Show 36 quoted lines
> I was trying to use the built-in git tools to send patches off, instead > of my horribly hacked up scripts that use the git low-level stuff, when > I noticed that git format-patch's output confuses diffstat a bit, and > causes it to add another line to it's count. > > This isn't good when I do a 'diffstat -p1 *.txt' of the output and add > it to an email to send off for someone to pull from, as the result will > be off from what is really there. > > Here's what I get: > > $ git format-patch -n origin..HEAD > 0001-USB-fix-up-the-usb-early-handoff-logic-for-EHCI.txt > 0002-USB-add-new-device-ids-to-ldusb.txt > 0003-USB-change-ldusb-s-experimental-state.txt > 0004-USB-PL2303-Leadtek-9531-GPS-Mouse.txt > 0005-USB-sl811_cs-needs-platform_device-conversion-too.txt > 0006-usb-storage-new-unusual_devs-entry.txt > 0007-usb-storage-unusual_devs-entry.txt > 0008-USB-unusual_devs.h-entry-TrekStor-i.Beat.txt > 0009-USB-unusual_devs.h-entry-iAUDIO-M5.txt > 0010-USB-unusual-devs-bugfix.txt > > $ git log | head -n 1 > commit 16f05be7be0bf121491d83bd97337fe179b3b323 > > $ git show 16f05be7be0bf121491d83bd97337fe179b3b323 | diffstat -p1 > drivers/usb/storage/unusual_devs.h | 25 ++++++++++++++++++------- > 1 file changed, 18 insertions(+), 7 deletions(-) > > $ diffstat -p1 0010-USB-unusual-devs-bugfix.txt > drivers/usb/storage/unusual_devs.h | 26 ++++++++++++++++++-------- > 1 file changed, 18 insertions(+), 8 deletions(-) > > Any thoughts? >
If you don't have to generate the diffstat from the individual patches then
git-diff-tree -p origin HEAD | git-apply --stat
should give you what you want.
BTW when I tried the above command on two random tags in the git tree I got:
$ git-diff-tree -p v1.2.0 v1.0.8 | diffstat -p1 | tail -1
165 files changed, 3913 insertions(+), 8092 deletions(-)and
$ git-diff-tree -p v1.2.0 v1.0.8 | git apply --stat | tail -1
160 files changed, 3925 insertions(+), 8092 deletions(-)The difference seems to be caused by diffstat which seems to think that all lines starting with '---' are diff headers. Hence, there are some bogus files in the diffstat output such as:
[master] | 177 ++
[master^2~4] | 9
[master^] | 24
[mybranch] | 56
[mybranch^] | 616 +++++++- Fredrik