From: Junio C Hamano Date: Mon, 25 Feb 2008 01:37:15 +0000 (-0800) Subject: diff --dirstat: saner handling of binary and unmerged files X-Git-Tag: v1.5.5-rc0~155^2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=2b0b551d7662a4246ed55b6a7029ba3caa65cf98;p=git.git diff --dirstat: saner handling of binary and unmerged files We do not account binary nor unmerged files when --shortstat is asked for (or the summary stat at the end of --stat). The new option --dirstat should work the same way as it is about summarizing the changes of multiple files by adding them up. Signed-off-by: Junio C Hamano --- diff --git a/diff.c b/diff.c index dd374d436..bcc323f19 100644 --- a/diff.c +++ b/diff.c @@ -1016,7 +1016,10 @@ static long gather_dirstat(struct diffstat_dir *dir, unsigned long changed, cons this = gather_dirstat(dir, changed, f->name, newbaselen); sources++; } else { - this = f->added + f->deleted; + if (f->is_unmerged || f->is_binary) + this = 0; + else + this = f->added + f->deleted; dir->files++; dir->nr--; sources += 2; @@ -1053,6 +1056,8 @@ static void show_dirstat(struct diffstat_t *data, struct diff_options *options) /* Calculate total changes */ changed = 0; for (i = 0; i < data->nr; i++) { + if (data->files[i]->is_binary || data->files[i]->is_unmerged) + continue; changed += data->files[i]->added; changed += data->files[i]->deleted; }