combine-diff: treat --shortstat like --stat
authorJeff King <peff@peff.net>
Thu, 24 Jan 2019 12:34:51 +0000 (07:34 -0500)
committerJunio C Hamano <gitster@pobox.com>
Thu, 24 Jan 2019 20:18:53 +0000 (12:18 -0800)
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>
combine-diff.c
t/t4013-diff-various.sh
t/t4013/diff.diff-tree_--cc_--shortstat_master [new file with mode: 0644]
index ebf9064e27be71688cc5d446f29aefabf65b4529..b4a92a8505c6a808255bc1319b17f4d3c724faa2 100644 (file)
@@ -1325,6 +1325,7 @@ static const char *path_path(void *obj)
  * Diff stat formats which we always compute solely against the first parent.
  */
 #define STAT_FORMAT_MASK (DIFF_FORMAT_NUMSTAT \
+                         | DIFF_FORMAT_SHORTSTAT \
                          | DIFF_FORMAT_DIFFSTAT)
 
 /* find set of paths that every parent touches */
index 7d985ff6b1bff3c73e4309cde675f67c813d93da..9ccdf08730e5b712c0b5d70b0c13505ce8acec03 100755 (executable)
@@ -239,6 +239,7 @@ diff-tree --cc --stat --summary master
 # stat summary should show the diffstat and summary with the first parent
 diff-tree -c --stat --summary side
 diff-tree --cc --stat --summary side
+diff-tree --cc --shortstat master
 # improved by Timo's patch
 diff-tree --cc --patch-with-stat master
 # improved by Timo's patch
diff --git a/t/t4013/diff.diff-tree_--cc_--shortstat_master b/t/t4013/diff.diff-tree_--cc_--shortstat_master
new file mode 100644 (file)
index 0000000..a4ca42d
--- /dev/null
@@ -0,0 +1,4 @@
+$ git diff-tree --cc --shortstat master
+59d314ad6f356dd08601a4cd5e530381da3e3c64
+ 2 files changed, 5 insertions(+)
+$