Subject: Re: A bug in git 1.6.5.2 with git log --stat: shows a negative number as a size

From: Tomas Carnecky <[email-masked]>
Date: Fri, 16 Apr 2010 17:02:01 +0200

On 4/16/10 3:59 PM, Heikki Orsila wrote:
> I'm running git version 1.6.5.2. git log --stat shows a negative
> diffstat size for two files that are each 2049MiB in size.
>
> Steps to reproduce:
>
> $ for f in 0 1 ; do dd bs=$((1024*1024)) if=/dev/zero of=$f count=2049 ; done
> $ git add 0 1
> $ git commit -m "test commit"
> $ git log --stat
> commit 6afe3d3c889daa92bd79956c4bb733eb5cb408dc
> Author: Heikki Orsila<[email-masked]>
> Date:   2010-04-16 16:54:52 +0300
>
>      test commit
>
>   0 |  Bin 0 ->  -2146435072 bytes
>   1 |  Bin 0 ->  -2146435072 bytes
>   2 files changed, 0 insertions(+), 0 deletions(-)

Yep, bug is also in the latest version (1.7.0.5). The code uses 'int' 
instead of something big enough to hold the size of your files.

http://git.kernel.org/?p=git/git.git;a=blob;f=diff.c;h=a1bf1e9cb37104cda8168c5118769ce5bbcfcbb2;hb=HEAD#l1105

and a couple lines below (1124) you see that the stat is printed out.

tom