combine-diff: treat --shortstat like --stat

The --stat of a combined diff is defined as the first-parent stat, going all the way back to 965f803c32 (combine-diff: show diffstat with the first parent., 2006-04-17). Naturally, we gave --numstat the same treatment in 74e2abe5b7 (diff --numstat, 2006-10-12). But --shortstat, which is really just the final line of --stat, does nothing, which produces confusing results: $ git show --oneline --stat eab7584e37 eab7584e37 Merge branch 'en/show-ref-doc-fix' Documentation/git-show-ref.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) $ git show --oneline --shortstat eab7584e37 eab7584e37 Merge branch 'en/show-ref-doc-fix' [nothing! We'd expect to see the "1 file changed..." line] This patch teaches combine-diff to treats the two formats identically. Reported-by: David Turner <novalis@novalis.org> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Jan 24, 2019 at 07:34 UTC 8290faa077784a2518d0a77b448ca2987c3baf07
3 files changed +6
combine-diff.c
+1
@@ -1325,6 +1325,7 @@ static const char *path_path(void *obj)
1325 * Diff stat formats which we always compute solely against the first parent.
1326 */
1327 #define STAT_FORMAT_MASK (DIFF_FORMAT_NUMSTAT \
1328 + | DIFF_FORMAT_SHORTSTAT \
1329 | DIFF_FORMAT_DIFFSTAT)
1330
1331 /* find set of paths that every parent touches */
t/t4013-diff-various.sh
+1
@@ -239,6 +239,7 @@ diff-tree --cc --stat --summary master
239 # stat summary should show the diffstat and summary with the first parent
240 diff-tree -c --stat --summary side
241 diff-tree --cc --stat --summary side
242 +diff-tree --cc --shortstat master
243 # improved by Timo's patch
244 diff-tree --cc --patch-with-stat master
245 # improved by Timo's patch
t/t4013/diff.diff-tree_--cc_--shortstat_master new
+4
@@ -0,0 +1,4 @@
1 +$ git diff-tree --cc --shortstat master
2 +59d314ad6f356dd08601a4cd5e530381da3e3c64
3 + 2 files changed, 5 insertions(+)
4 +$