Indeed stat seems to be broken on master by commit 74faaa16 from Linus Torvalds
There are three separated issues here:
- unmerged files are marked as "interesting" in stat and probably
shouldn't, with some patch like this:
data->is_interesting = p->status != 0;
if (!one || !two) {
data->is_unmerged = 1;
+ data->is_interesting = 0;
return;
}
By the way, I don't get the point of this code then:
else if (data->files[i]->is_unmerged) {
fprintf(options->file, "%s", line_prefix);
show_name(options->file, prefix, name, len);
fprintf(options->file, " Unmerged\n");
continue;
}
and
if (file->is_unmerged) {
/* "Unmerged" is 8 characters */
bin_width = bin_width < 8 ? 8 : bin_width;
continue;
}
Are we ever supposed to print that ? I feel like it could be removed.
- Unmerged files are not filtered out in shortstat, thus counted
twice (addressed by the patch)
- no file has ever been filtered out of numstat, and probably should
the way it's done in stat. That is with something like this:
if (!data->files[i]->is_interesting &&
(added + deleted == 0)) {
continue;
}
Cheers,
Antoine Pelisse
---------- Forwarded message ----------
From: Junio C Hamano <[email protected]>
Date: Mon, Nov 26, 2012 at 4:28 AM
Subject: Re: [PATCH] diff: Fixes shortstat number of files
To: Antoine Pelisse <[email protected]>
Cc: [email protected]
Antoine Pelisse <[email protected]> writes:
> Subject: Re: [PATCH] diff: Fixes shortstat number of files
Please replace "Fixes" with "Fix at least (because our log messages
are written as if a patch is giving an order to the codebase, iow,
in imperative mood), but we would prefer to see a concrete
description on what is fixed, when we can. And in this case, I
think we can, perhaps:
diff: do not count unmerged paths twice in --shortstat/--numstat
or something.
> There is a discrepancy between the last line of `git diff --stat`
> and `git diff --shortstat` in case of a merge.
> The unmerged files are actually counted twice, thus doubling the
> value of "file changed".
I think the current 'master' and upward is broken with respect to
this; I am consistently getting two entries for unmerged paths
across --stat, --shortstat and --numstat options (iow, not just
shortstat and numstat but the '--stat' seems to be broken as well).
Thanks.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html